Обнаружение выхода из системы и входа в PowerShell - PullRequest
5 голосов
/ 02 марта 2011

Как я могу определить, вошел ли пользователь в систему Windows или нет (предпочтительно работает с win7, vista или XP) с помощью powershell?

Я хочу зарегистрировать дату и время каждой регистрациии выключение машины.

Заранее спасибо

Ответы [ 2 ]

7 голосов
/ 03 марта 2011

Вы можете получить эту информацию из журнала событий:

Get-EventLog System -Source Microsoft-Windows-Winlogon

У входов в систему InstanceId 7001, у выходов из системы 7002. Учетной записью пользователя является SID в ReplacementStrings.

Вот еще несколько полезных кодов для вас.

$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

Вы также можете получить эти события с удаленного компьютера, добавив параметр «-ComputerName» в Get-EventLog.

1 голос
/ 02 марта 2011

Такие вещи уже есть в системном журнале windows, с типом "Winlogon". Не знаю, как вы могли бы извлечь информацию оттуда через powershell, но, по крайней мере, часть регистрации уже есть для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...