estou seguindo o tutorialaquipara mudar para a tela de logon, está funcionando até agora. No entanto, gostaria de um pouco mais de funcionalidade, se possível.
Eu sou capaz de exibir umtítuloeditando a seguinte chave de registro;
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
legalnoticecaption
Também posso adicionar ummensagemeditando
legalnoticetext
Eu gostaria agora de outroperceberdizer "Este computador ficou bloqueado por x minutos".
O que preciso editar/criar para conseguir isso? Isso é possível?
A razão para fazer isso é porque em nosso laboratório alguns PCs estão bloqueados e os usuários simplesmente se afastam deles. Eles fazem logout após 30 minutos, mas eu gostaria de exibir claramente para outros usuários que passam por quanto tempo um PC ficou bloqueado.
Responder1
Logo de cara - isso não é possível nativamente.
NO ENTANTO! pode ser possível através de um script.
Teoricamente, você poderia escrever um pequeno pedaço de VBScript para atualizar a chave de registro a cada minuto ou dois minutos com um novo valor lendo o horário de início do protetor de tela.
Esse cara do scripta postagem mostra como ler quando um protetor de tela foi ativado. Se você fizer uma comparação de data/hora e encontrar o tempo decorrido - você poderáatualizar a chave de registrocom "O protetor de tela está em execução há x minutos".
Isso pressupõe que a chave do aviso legal seja lida cada vez que for mostrada - não tenho o kit sobressalente ou tempo para testar no momento, mas isso deve indicar a direção certa.
Isso pode ser definido como uma tarefa agendada para ser executada a cada um ou dois minutos.
Não é exatamente limpo, mas poderia funcionar... quase.
Tente algo como:
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