Estou claramente cortando / colando essa resposta de outra site (desde que a ligação é desaprovada e eu não tenho uma resposta melhor). Eu acredito que isso resolverá seu problema.
...it looks like you can set up a Event watcher using Register-ObjectEvent using
[microsoft.win32.systemevents]
and watching for eitherSessionEnding
orSessionEnded
. I haven't had time to test this out, but you could look at using something like this:
$sysevent = [microsoft.win32.systemevents]
Register-ObjectEvent -InputObject $sysevent -EventName "SessionEnding" -Action {"Shutdown/Logoff detected.";Get-Process -Name Powershell | Stop-Process -Force}
More information about this class can be found here: http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents_events.aspx