PowerShell — Аудит заполнения полей в Active Directory

Когда то такой вопрос возникает практически у каждого администратора домена , а всели поля корректно заполнены в active directory.

Если в домене 10-30 пользователей можно пробежаться руками и проверить поля на заполнение , а если их больше 500 или 1000 пользователей это офигеть , нам на помощь приходит снова PowerShell:

$base = "OU=Users,DC=Domain,DC=Local"
$properties = "telephoneNumber","mail","displayName","company","department","manager","title"
 
$body = Get-ADUser -Filter * -SearchBase $base -Properties $properties | Foreach {
 $user = $_
 if($miss = $properties | Where {!$user."$_"}) {
  "{0} - {1}" -f ($miss -join ","),$user.name
 }
 else {
  "verify - {0}" -f $user.name
 }
} | Sort |  Out-String
 
 
Send-MailMessage -From noreply@domain.local -To info@domain.local -Subject "Informer AD-Users" -Body $Body -SmtpServer smtp.domain.local

Данные скрипт проверяет поля :

telephoneNumber
mail
displayName
company
department
manager
title

И присылает письмо на почту ,в котором указанно каких пользователей надо проверить.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *