Cercare un utente AD tramite la mail in Active Directory
Tramite questo script PowerShell è possibile cercare in Active Directory un utente tramite la sua email ed aggiornare le sue proprietà (nell'esempio department e company)
PowerShell: findeUserByEmailAD.ps1
#query di ricerca
$mail = "user1@sgart.local"
$oFilter = "(&(objectCategory=person)(objectCategory=User)(mail=$mail))"
$oSearch = New-Object System.DirectoryServices.DirectorySearcher
$oSearch.PageSize = 500
$oSearch.Filter = $oFilter
#per cercare in tutta la struttura delle OU
$oSearch.SearchScope = "Subtree"
#per cercare in tutti i domini childs
$oSearch.ReferralChasing = "All"
#eseguo la ricerca
$oUser= $oSearch.findOne()
if($allObj -ne $null) {
#se ho trovato la mail oggiorno le proprietà
Write-output "$i) $mail - $dep - $company"
$p = $oUser.GetDirectoryEntry()
$p.InvokeSet("department", "new department name")
$p.InvokeSet("company", "new company name")
$p.CommitChanges()
$p.Dispose()
}