Es kann vorkommen, dass in historisch gewachsenen Domänen einzelne (oder alle) User Einträge im AD-Attribut “ProxyAddresses” haben, die auf einen alten Exchange / Gmail / etc hinweisen.
Dies ist äußerst hinderlich, wenn man diese Benutzer per Azure AD Connect ins OFFICE 365 übertragen möchte, da dieser Eintrag dazu führt, dass Benutzer kein Outlook-Konto in OFFICE365 bekommen.
Die Fehlermeldung lautet dann:
Benutzername xyz@domain.at E-Mail-Adresse Aliase Anzeigen nicht möglich. Versuchen Sie es noch mal.Die Lösung ist es nun, die Einträge im Attribut “ProxyAddresses” zu entfernen, was folgendes Script massenhaft erledigen kann:
(als MassenAttributlöscher.vbs speichern und direkt am Domänencontroller ausführen)
On Error Resume Next Const ADS_SCOPE_SUBTREE = 2 Const ADS_PROPERTY_APPEND = 3 Const ADS_PROPERTY_DELETE = 4 Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" Set objCommand.ActiveConnection = objConnection objCommand.Properties("Page Size") = 1000 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE objCommand.CommandText = "SELECT name, distinguishedName, sAmAccountname, proxyaddresses FROM 'LDAP://OU=lehrer,OU=Benutzer,DC=gymnasium,DC=at' WHERE objectCategory='user'" Set objRecordSet = objCommand.Execute objRecordSet.MoveFirst Do Until objRecordSet.EOF 'Wscript.Echo objRecordSet.Fields("distinguishedName").Value if NOT objRecordSet.Fields("proxyaddresses").Value = NULL THEN Wscript.Echo objRecordSet.Fields("sAmAccountname").Value & " -- " & objRecordSet.Fields("Name").Value '# falls man das Script nur für einen User testen möchte: (ACHTUNG: zweites END IF unten einkommentieren) 'if objRecordSet.Fields("name").Value = "DRE" then 'Wscript.Echo objRecordSet.Fields("name").Value arrProxyAddresses = objRecordSet.Fields("proxyAddresses").Value Set objUser = GetObject("LDAP://" & objRecordSet.Fields("distinguishedName").Value) '### zum Löschen aller Einträge in ProxyAddresses folgendes einkommentieren: For Each objItem In arrProxyAddresses objUser.PutEx ADS_PROPERTY_DELETE, "proxyAddresses", Array(objItem) objUser.SetInfo Next '### zum Einfügen einer zusätzlichen Adresse folgendes einkommentieren: ' objUser.PutEx ADS_PROPERTY_APPEND, "proxyAddresses", Array("smtp:" & objRecordSet.Fields("sAmAccountname").Value & "@brg-mattersburg.at" ) 'objUser.SetInfo '### zum Auflisten aller Einträge in ProxyAddresses folgendes einkommentieren: For x=0 to UBOUND(arrProxyAddresses) wscript.echo arrProxyAddresses(x) Next wscript.Echo "erfolgreiche gelöscht!" & vbcrlf end if 'end if objRecordSet.MoveNext Loop