Powershell : vérification de masse d’existence de comptes AD

Ce script prend un fichier CSV en entrée comprenant des noms de comptes AD afin de vérifier pour chacun s’il existe vraiment grâce à dsquery et réalise un export CSV de la liste générée.

$userlist = Import-CSV userlist.csv
$i = 0
$userexport = @()
foreach($user in $userlist){
	if ((dsquery user -samid $user.Name) -eq $null) { 
		$user.name
		$i++
		$name=@{Name = $user.name}
		$export = New-Object PSObject -Property $name
		$userexport+=$export
	}
}
Write-Host "Number of accounts not present in AD"$i" out of"($userlist.length)
$userexport | Export-CSV user-noexist.csv -NoTypeInformation

Pourquoi dsquery et non pas Get-AdUser ? Car ce dernier renvoie un message d’erreur si l’utilisateur n’existe pas et que le but du script est simplement de lister les users qui ne sont pas présents dans l’AD.

A noter qu’en fonction du titre de la « colonne » comportant les noms dans le fichier CSV, il sera nécessaire de modifier la requête -samid $user.Name en –samid $user.NomColonne.