Скрипт для удаленной блокировки экрана под Windows 7 - PullRequest
3 голосов
/ 10 января 2012

В этом направлении меня указал автор сценария, который я использую уже пару лет.

Он позволяет удаленно блокировать рабочий стол и отлично работает локально и удаленно под Windows.XP и отлично работает локально под Windows 7, но при попытке использовать его удаленно на компьютере с Windows 7 он не работает.Это было здорово в течение нескольких лет и было очень полезно, но мы недавно начали развертывать машины Windows 7 на месте, и как только обновление будет завершено, я больше не смогу использовать это.

тот же вопрос , который был задан мной пару лет назад, но остался без ответа.
Вот код 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 ]

1 голос
/ 10 ноября 2014

Это работает для меня с удаленными системами Windows 7 x64:

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

Привет

1 голос
/ 10 января 2012

Запуск rundll32.exe user32.dll,LockWorkStation на моей 64-битной Win7 блокирует экран, так что это выглядит вполне нормально.Но, глядя на http://msdn.microsoft.com/en-us/library/windows/desktop/aa376875(v=vs.85).aspx, я читаю

Функция LockWorkStation вызывается только процессами, запущенными на интерактивном рабочем столе.Кроме того, пользователь должен войти в систему, а рабочая станция уже не может быть заблокирована.

У меня нет опыта работы с WMI, но я предполагаю, что WMI не запускает rundll32.exe на интерактивном рабочем столе !?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...