PDA

Показать полную графическую версию : [решено] Узнать не активных пользователей AD


s.i.p.a
11-02-2020, 16:47
Добрый день. В инете нашёл интересный код для вычисления пользователей, которые давно не заходили в домен

$date_with_offset= (Get-Date).AddDays(-45)
$users = Get-ADUser -Properties LastLogonDate -Filter {LastLogonDate -lt $date_with_offset } | Sort LastLogonDate
foreach ($user in $users) {set-aduser $user -enabled $false; move-adobject -identity $user -targetpath "ou=Уволенные,ou=Мск Л. пользователи,ou=Местоположение,dc=msk,dc=contoso,dc=com"}
Get-ADUser -Properties LastLogonDate -Filter {LastLogonDate -lt $date_with_offset } | Sort LastLogonDate | FT Name, LastLogonDate -AutoSize | Out-File c:\Script\users.txt

Код смотрит пользователей которые не заходили 45 дней и больше, отключает их, перемещает в другую OU и скидывает данные в текстовый файл на C диск.
А мне надо, всего лишь вычислить таких пользователей и записать в текстовый файл. Помогите подправить код или подскажите другое решение.

Ageron
12-02-2020, 09:04
$date_with_offset= (Get-Date).AddDays(-45)
Get-ADUser -Properties LastLogonDate -Filter {LastLogonDate -lt $date_with_offset } | Sort LastLogonDate | FT Name, LastLogonDate -AutoSize | Out-File c:\Script\users.txt

s.i.p.a
13-02-2020, 09:04
Спасибо. Блин, чёт криво скрипт работает этот. Через запрос выводит 150 пользователей, а через этот скрипт всего 6-8

Charg
13-02-2020, 11:07
Через запрос »
Через какой запрос?

DJ Mogarych
13-02-2020, 16:46
Get-ADUser -Properties lastlogondate,distinguishedName -Filter "enabled -eq 'true'" |
? {$_.Lastlogondate -lt (Get-Date).Adddays(-45) -and $_.name -notmatch 'Healthmailbox'} |
select name,SAMAccountName,lastlogondate,distinguishedName | sort name |
Export-Csv "c:\temp\$(get-date -f "yyyy-MM-dd") Users not logged on for 45 days.csv" -Encoding UTF8 -Delimiter ';' -NoTypeInformation

Результат можно открыть в Экселе.




© OSzone.net 2001-2012