在Windows 7下远程锁定屏幕的脚本

时间:2012-01-10 09:00:29

标签: windows-7 vbscript

我在这个方向上指出了我已经使用了几年的剧本。

它允许远程锁定桌面,并且在Windows XP下本地和远程工作正常,并且在Windows 7下可以正常工作,但是当尝试远程使用它对Windows 7计算机时,它无法正常工作。 它已经很好用了几年而且非常有用,但我们最近开始在现场部署Windows 7机器,一旦升级完全完成,我将无法再使用它了。

我所拥有的same question是在几年前提出来的,但未得到答复 这是VBS代码:

' 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

2 个答案:

答案 0 :(得分:1)

在我的Win7 64位上运行rundll32.exe user32.dll,LockWorkStation锁定屏幕,所以这似乎很好。但在看http://msdn.microsoft.com/en-us/library/windows/desktop/aa376875(v=vs.85).aspx时,我读了

  

LockWorkStation功能只能由运行的进程调用   交互式桌面。此外,用户必须登录,并且   工作站无法锁定。

我没有使用WMI的经验,但我认为WMI不会在交互式桌面上运行rundll32.exe!

答案 1 :(得分:1)

这适用于远程Windows 7 x64系统:

psexec.exe -accepteula \\REMOTECOMPUTERNAME -i -s %windir%\system32\rundll32.exe user32.dll,LockWorkStation

此致