私は数年前から使用していたスクリプトの作者によってこの方向を指摘されました。Windows 7で画面をリモートロックするスクリプト
これは、デスクトップのリモートロックを許可し、Windows XPではローカルとリモートで正常に動作し、Windows 7ではローカルで正常に動作しますが、Windows 7マシンに対してリモートで使用しようとすると動作しません。 これは数年前から大変役に立ちましたが、非常に便利でしたが、最近Windows 7マシンをサイトに導入し始めました。アップグレードが完了すると、これ以上使用することはできません。
私が持っているsame questionは数年前にポーズを取られましたが、未回答でした。ここ
はVBSコードです:私のWin7の64ビットにrundll32.exe user32.dll,LockWorkStation
を実行
' StartProcess.vbs
' Sample VBScript to start a process. Inputbox for name
' Author Guy Thomas http://computerperformance.co.uk/
' Version 2.2 - December 2005
' -------------------------------------------------------'
Option Explicit
Dim objWMIService, objProcess
Dim strShell, objProgram, strComputer, strExe, strInput
strExe = "rundll32.exe user32.dll,LockWorkStation"
' Input Box to get name of machine to run the process
Do
strComputer = (InputBox(" ComputerName to Run Script",_
"Computer Name"))
If strComputer <> "" Then
strInput = True
End if
Loop until strInput = True
' Connect to WMI
set objWMIService = getobject("winmgmts://"_
& strComputer & "/root/cimv2")
' Obtain the Win32_Process class of object.
Set objProcess = objWMIService.Get("Win32_Process")
Set objProgram = objProcess.Methods_(_
"Create").InParameters.SpawnInstance_
objProgram.CommandLine = strExe
'Execute the program now at the command line.
Set strShell = objWMIService.ExecMethod(_
"Win32_Process", "Create", objProgram)
'WScript.echo "Created: " & strExe & " on " & strComputer
WSCript.Quit
' End of Example of a Process VBScript
(HTTP [VBSコードが本当に最初の場所で "働いた" 決してこと]://blogs.msdn。 com/b/oldnewthing/archive/2004/01/15/58973.aspx)。 Rundll32.exeは、誤った署名を持つため、 'LockWorkStation'関数を呼び出すつもりはありませんでした。今はそれを修正するのに良い時期です。 –
リンクと編集コーディーをありがとう、私はrundll32を呼び出すことは良いアイデアではなかったが、今までのところ理解していないと思っていました。 –
@Cody Grey:LockWorkStationはパラメータを必要としないので、rundll32.exeが必要以上に多くのパラメータを渡しても問題ありません。 –