Я пытаюсь найти способ просмотреть все учетные записи пользователей AD на определенном компьютере, а затем узнать, сколько времени прошло с тех пор, как каждая из них последний раз входила в систему на этом конкретном компьютере. Я нашел для этого сценарий PS, но проблема заключалась в том, что он показывает, когда пользователи в последний раз входили в AD в целом, а не на конкретный компьютер. Чтобы добавить контекст, мне придется использовать сценарий для очистки локальных пользователей AD от компьютеров, которые не входили в систему на этом конкретном компьютере в течение 90 дней. Также я довольно новичок в PS. Спасибо заранее всем, кто помогает!

Старый скрипт:

$data = @() 
$NetLogs = Get-WmiObject Win32_NetworkLoginProfile -ComputerName "PC-NAME";
foreach ($NetLog in $NetLogs) { 
if ($NetLog.LastLogon -match "(\d{14})") { 
$row = "" | Select Name,LogonTime 
$row.Name = $NetLog.Name 
$row.LogonTime=[datetime]::ParseExact($matches[0], "yyyyMMddHHmmss", $null) 
$data += $row
} 
} 
$data

Где я взял старый скрипт:

http://xpertkb.com/find-lastlogon-date-server-local-domain-users/

1 ответ1

0

Способ сделать это - выполнить скрипт входа в систему, который записывает дату, имя пользователя и имя хоста каждый раз, когда пользователь входит в домен; Вы можете установить это в Active Directory. Затем вам нужно будет только проанализировать это централизованное местоположение журнала, где вы сохраняете эту информацию.

Другая возможность - анализ журнала контроллера домена, но это оказалось медленным и непрактичным для нас.

Вы можете проверить файл C:\Users\<user>\NTUSER.DAT: если его последняя дата изменения старше 90 дней ... запустите профиль!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .