Wer im Active-Directory (AD) eine Gruppe umbenennt, welche im SharePoint verwendet wird, der hat das Problem, dass diese nicht den neuen Namen im SharePoint erhält. Der SharePoint Server bzw. der UserProfileService erneuert nicht die Namen von verwendeten AD-Gruppen im SharePoint.
Bei Benutzer-Accounts funktioniert dieses automatisch oder kann mit dem Set-SPUser Powershell-Befehl und SyncFromAD Parameter manuell schnell gelöst werden. Dieser Befehl funktioniert leider nicht für AD-Gruppen und wird mit folgendem Fehler ausgewiesen:
Set-SPUser : Cannot get the full name or e-mail address of user
Mit einem kleinen Powershell-Script kann man die Namen allerdings schnell erneuert bekommen.
Über die SID, welche sowohl im SharePoint als auch im ActiveDirectory übereinstimmt kann man die jeweilige Gruppe identifizieren.
In diesem Beispiel wird das Attribut „displayname“ verwendet. Möglich wären natürlich auch das „name“-Attribut oder „samAccountname“-Attribut.
Das Script lädt alle Gruppen aus dem AD und geht dann alle SharePoint-Seiten durch und erneuert die Namen von den Gruppen, welche einen neuen Namen haben.
## Holt alle Gruppen vom aktuellen AD und aktualisiert den Anzeigename ## Erstelle Cache von allen Gruppen => Displayname und SID $searcher=[adsisearcher]"(objectCategory=group)" $result = $searcher.FindAll() $grpcache = @{} foreach($r in $result){ $sid = (New-Object -TypeName System.Security.Principal.SecurityIdentifier -ArgumentList $($r.Properties.objectsid), 0).value $name = $r.Properties.displayname if($name){ $grpcache[$sid] = $name; } } ## Aktualisiere im SharePoint den Displayname von Gruppen $allsites = Get-SPSite -Limit All foreach($s in $allsites){ $users = $s.rootweb.siteusers foreach($u in $users){ if($u.IsDomainGroup){ $sid = $u.UserLogin.Replace("c:0+.w|","") if($grpcache.ContainsKey($sid)){ $newname= $grpcache[$sid]; $oldname = $u.Displayname if($newname -ne $oldname){ Set-SPUser -Identity $u -DisplayName $newname Write-Host "Gruppe erneuert von $oldname nach $newname" } } } } } Write-Host "Alle Gruppennamen aktualisiert"
Kategorien: Kurz notiert, SharePoint, Technical
Schlagwörter: Powershell, SharePoint
Haben Sie Fragen zu diesem Artikel oder brauchen Sie Unterstützung?
Nehmen Sie mit uns Kontakt auf!
Wir unterstützen Sie gerne bei Ihren SharePoint-Vorhaben!