2011-03-02 15 views

Respuesta

7

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.

+0

¡Es exactamente esto! Gracias Jason. –

+0

¿Podría ayudarme con este: http://stackoverflow.com/questions/5186693/detect-switch-user-with-powershell ¿Hay algo que pueda ayudar a comprender mejor get-eventlog? Gracias –

1

Este tipo de cosas son ya sea en el registro de las ventanas del sistema, con el tipo de "Winlogon". No sé cómo extraerías la información desde allí a través de Powershell, pero al menos la parte de registro ya está ahí para ti.

Cuestiones relacionadas