usted puede conseguir este infromation del registro de eventos:
Get-EventLog System -Source Microsoft-Windows-Winlogon
inicios de sesión tienen un InstanceId de 7001, cierres de sesión tienen 7002. La cuenta de usuario es un SID en ReplacementStrings.
Aquí hay un código más útil para usted.
$UserProperty = @{n="User";e={(New-Object System.Security.Principal.SecurityIdentifier $_.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount])}}
$TypeProperty = @{n="Action";e={if($_.EventID -eq 7001) {"Logon"} else {"Logoff"}}}
$TimeProeprty = @{n="Time";e={$_.TimeGenerated}}
Get-EventLog System -Source Microsoft-Windows-Winlogon | select $UserProperty,$TypeProperty,$TimeProeprty
También puede obtener estos eventos desde un equipo remoto mediante la adición del parámetro "-ComputerName" a Get-EventLog.
¿alguna solución final con código fuente completo? – Kiquenet