Das AD-Attribut mailNickname (auch Alias genannt) verhindert die Übernahme in das Globale Adressbuch, wenn sich darin Leerzeichen befinden.
Die Ausführung in der Powershell von :
Update-GlobalAddressList -identity "Globale Standardadressliste"
schlägt fehl. (hier natürlich eigenen Wert eintragen)
Das hier angeführte Script durchforstet die Kontakte und löscht die Leerzeichen.
So wird aus „Pitti Platsch“ dann „PittiPlatsch“.
' alle mailNickName der GAL-Kontakte so ändern, ' dass keine Leerzeichen mehr vorhanden sind Dim oUser,email, memberOf , buf , DisName , mailNickname, name , distinguishedName DIM arrmailNickname(),arrEmail(),arrName(),arrdistinguishedName(),arrNewmailNickname() i = 0 j = 0 i = Abfrage for j = 0 to i - 1 'wscript.echo arrdistinguishedName(j) & vbTab & arrmailNickname(j) & vbTab & arrEmail(j) & vbTab & arrName(j) ReDim Preserve arrNewmailNickname(j) arrNewmailNickname(j) = Replace(arrmailNickname(j)," ","") 'wscript.echo arrNewmailNickname(j) ChangeMailNickName arrdistinguishedName(j),arrNewmailNickname(j) j = j + 1 next ' ------------------------------------------------------------------------- ' Benutzerattribute gezielt mit ADO per SQL suchen ' ------------------------------------------------------------------------- Function Abfrage() Dim objDSE, objConnection, objCommand, objRecordset, i , objDNC , cT , rstU Set objDSE = GetObject("LDAP://rootDSE") objDNC = objDSE.Get("defaultNamingContext") Set objDSE = Nothing ' hier den eigenen FQDN eintragen: cT = "SELECT mailnickname,mail,legacyExchangeDN,name,distinguishedName FROM 'LDAP://DC=my,DC=dom,DC=ain' WHERE objectclass = 'contact' AND mailNickname = '* *' " Set objConnection = CreateObject("ADODB.Connection") objConnection.Provider = "ADsDSOObject" objConnection.Open Set objCommand = CreateObject("ADODB.Command") Set objCommand.ActiveConnection = objConnection objCommand.CommandText = cT Set objRecordset = objCommand.Execute If Not objRecordset.EOF Then While Not objRecordset.EOF on error resume next email = objRecordset.Fields("mail") ReDim Preserve arrEmail(i) arrEmail(i) = email name = objRecordset.Fields("name") ReDim Preserve arrName(i) arrName(i) = name ' DisName = objRecordset.Fields("distinguishedName") mailNickname = objRecordset.Fields("mailNickname") ReDim Preserve arrmailNickname(i) arrmailNickname(i) = mailNickname distinguishedName = objRecordset.Fields("distinguishedName") ReDim Preserve arrdistinguishedName(i) arrdistinguishedName(i) = distinguishedName ' memberOf = objRecordset.Fields("memberOf") i = i + 1 'wscript.echo i & vbcrlf objRecordset.MoveNext Wend End if objRecordset.Close objConnection.Close Abfrage = i End Function '------------------------------------------------------------------------- 'mailNickName ändern '------------------------------------------------------------------------- sub ChangeMailNickName(DisName,Target) Set oTargetOU = GetObject("LDAP://" & DisName) oTargetOU.Put "mailNickname", Target wscript.echo DisName & vbTab & Target oTargetOU.SetInfo set oTargetOU = Nothing End Sub ' -------------------------------------------------------------------------