Eu precisava de uma solução alternativa para fazer logoff de usuários que deixam suas janelas do LibreOffice abertas quando saem. Eles sempre encontrariam uma caixa de diálogo de recuperação pela manhã, causando frustração entre os usuários menos qualificados. Então, escrevi este script e adicionei uma programação para executá-lo.
$timeout = 600
$message = "Save all files! Logging you out in "+ $timeout/60 +" minutes."
$sessions = @()
$cond = "wdica"
# Collect session IDs and warn users
query session | select-string $cond |
%{$_ -replace " {2,27}"," "} |
foreach { $_.ToString().split(" ")[3]} |
foreach { $sessions += $_
msg $_ /TIME:$timeout $message
}
# Wait for timeout
sleep $timeout
# Log off sessions
$sessions | foreach {
C:toolspstoolsPsExec.exe -i $_ C:toolsNircmdnircmd.exe win close alltopnodesktop
}
As variáveis no topo podem ser usadas para modificar a experiência. O “$ cond” pode ser um nome de usuário, por exemplo.
Transferências
Baixe as seguintes ferramentas e descompacte-as no local apropriado (usado no script acima):