Операционная система Windows предоставляет возможность блокирования рабочей станции с помощью следующей команды:
rundll32.exe user32.dll,LockWorkStation
Эту команду можно использовать в виде ярлыка на рабочем столе.
С целью проверки параметров хранителя экрана можно создать отдельные записи в системном реестре. Запустите файл с расширением .REG, который добавляет следующие записи из командной строки:
HKCU\Control Panel\Desktop\ScreenSaveActive = 1
HKCU\Control Panel\Desktop\ScreenSaverIsSecure = 1
HKCU\Control Panel\Desktop\ScreenSaveTimeout = timeout in seconds
HKCU\Control Panel\Desktop\SCRNSAVE.EXE = %SystemRoot%\System32\Appropriate screensaver.ocr
Некоторые хранители экрана требуют указания дополнительных параметров в записи HKCU\Control Panel\ScreenSaver.screensaver.
После создания записей в системном реестре, следующий вызов приведет к активированию хранителя экрана:
SendMessage(HWND_TOPMOST, WM_SYSCOMMAND,SC_SCREENSAVE,0)
Необходимо написать и откомпилировать простую программу (файл с расширением .EXE), которая будет содержать этот вызов. Затем программу можно вызывать из командной строки для активирования хранителя экрана. Поскольку записи ScreenSaverIsSecure
в системном реестре присвоено значение 1, этот вызов является эффективным средством блокировки рабочей станции.
Евгений
А можно ли зная логин и пароль разблокировать рабочий стол из командной строки?
По времени из планировщика заданий, или через telnet, или с помощью powershell, необходимо выполнить какую либо команду которая разблокирует доступ к рабочему столу после того как он будет заблокирован win+L или rundll32.exe user32.dll,LockWorkStation
А еще хотелось бы узнать состояние рабочего стола, если сейчас на нем блокировка или нет.
подскажите есть ли варианты решения этой задачи?