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()
}  
Potrebbe interessarti anche: