Я следую инструкцииздесьдля того, чтобы перейти на экран входа в систему, пока работает. Однако хотелось бы немного больше функциональности, если это возможно.
Я могу отобразитьзаголовокотредактировав следующий ключ реестра;
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
legalnoticecaption
Я также могу добавитьсообщениепутем редактирования
legalnoticetext
Я бы сейчас хотел ещеуведомлениесказать "Этот компьютер был заблокирован в течение x минут.".
Что мне нужно отредактировать/создать, чтобы этого добиться? Возможно ли это вообще?
Причина этого в том, что в нашей лаборатории некоторые ПК блокируются, и пользователи просто уходят от них. Они выходят из системы через 30 минут, однако я хотел бы четко отображать другим проходящим пользователям, как долго ПК был заблокирован.
решение1
Сразу скажу — изначально это невозможно.
ОДНАКО! это может быть возможно с помощью сценария.
Теоретически вы можете написать небольшой фрагмент VBScript, который будет обновлять раздел реестра каждую минуту или две минуты новым значением, считывая время запуска заставки.
Этот парень-сценаристпост показывает, как читать, когда включается заставка. Если вы сделаете разницу даты/времени и найдете прошедшее время, вы должны быть в состоянииобновить ключ реестрас надписью «Заставка работает x минут».
Это предполагает, что ключ юридического уведомления будет считываться каждый раз, когда он отображается. У меня нет запасного комплекта или времени для проверки в данный момент, но это должно указать вам правильное направление.
Это можно настроить как запланированную задачу, которая будет запускаться каждую минуту или две.
Это не совсем чисто, но может сработать... ну, почти.
Попробуйте что-то вроде:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objProcess in colProcesses
If Right(objProcess.Name, 4) = ".scr" Then
Wscript.Echo "Screen saver start time: " & DateDiff("n",WMIDateStringToDate(objProcess.CreationDate),now())
'Set Registry Key to "x mins"
End If
Next
Wscript.Echo "The screen saver is not running."
'Set Registry Key to "0 minutes"
Function WMIDateStringToDate(dtmStart)
WMIDateStringToDate = CDate(Mid(dtmStart, 5, 2) & "/" & Mid(dtmStart, 7, 2) & "/" & Left(dtmStart, 4) & " " & Mid (dtmStart, 9, 2) & ":" & Mid(dtmStart, 11, 2) & ":" & Mid(dtmStart,13, 2))
End Function