Update SharePoint ActiveDirectory Group Displayname

When the name of an Active Directory group has been changed, this change won’t affect the display name showed in the SharePoint permission editor.

To update the the name for all Active Directory groups you can run this snippet on the SharePoint server:


if ((Get-PSSnapin 'Microsoft.SharePoint.PowerShell' -ErrorAction SilentlyContinue) -eq $null){Add-PSSnapin 'Microsoft.SharePoint.PowerShell'}

$SPSiteFilter = "https://sharepoint.domain.ch"

Get-SPSite | where{$SPSiteFilter -contains $_.Url} | %{

    $_.rootweb.siteusers | where{($_.DisplayName -ne $_.UserLogin) -and $_.IsDomainGroup} | %{

        Write-Host "Change: $($_.DisplayName) to: $($_.UserLogin)"

        $_.DisplayName = $_.UserLogin
        $_.Name = $_.UserLogin
        $_.Update()

    }
}

This snippet is part of my SharePoint default settings script: https://gist.github.com/7871902

4 Replies to “Update SharePoint ActiveDirectory Group Displayname”

  1. Hallo Janik

    Dein Script finde ich sehr nützlich. Ich habe dazu noch zwei Fragen (bzw. themenverwandte Fragen)

    1) Ich möchte nur die AD User umbenennen (Login-Name), hat das irgendwelche Auswirkungen auf SharePoint 2013 Standard (on premise)? Was ich bisher gelesen habe, deutet eigentlich auf keinerlei Probleme hin…

    2) Wie muss ich dein Script modifizieren, wenn es mir nur die Benutzernamen aktualisieren soll bzw. ist das überhaupt notwendig?

    Danke dir für einen Input 🙂

    Abi

  2. Hallo Abi

    Danke für deine Frage.

    1) Am besten machst du einen Versuch mit einem Testbenutzer. Beim zweiten where-Filter einfach zusätzlich den Namen filtern, beispielsweise mit “-and ($_.UserLogin -eq ‘Testbenutzer’)”. Sehe ebenfalls keinerlei Probleme.

    2) So wie das Skript jetzt geschrieben ist, passt es nur die Gruppennamen an. Am besten schaust du dir die Benutzerobjekte genauer an und suchst nach einem Attribut, das nur die Benutzer haben. Eine einfache Alternative wäre natürlich im zweiten where-Filter den “$_.IsDomainGroup” Check mit “-not” zu verneinen.

    Grundsätzlich ist es gut, wenn du das Skript genau verstehst und gezielt modifizieren kannst.

    Lass mich wissen, ob deine Anpassung erfolgreich war.

    Janik

    1. Ciao Janik

      Danke dir für deine Antwort. Ich habe mich vermutlich ein wenig unglücklich ausgedrückt. Entschuldige bitte.

      Die Umbenennung der User (Benutzername) erfolgt auf dem AD durch unseren Spezialisten. Der hat dafür seine Powershell Scripts.

      Mein Problem bzw. meine Frage ist, ob es dann eigentlich reicht, wenn der User Profile Sync Service einen Full Crawl macht, damit er realisiert das z. B. otto.muster nun ex0123 heisst. Da die User alle schon in diversen Gruppen sind, möchte ich ungern, dass sie ihre Gruppenzugehörigkeiten verlieren, etc.

      Was ich eben nirgendwo gefunden habe – ob es überhaupt Sinnvoll ist, Benutzer umzubenennen. Keine Probleme verursachend bedeutet ja nicht, dass es sinnvoll ist bzw. nicht irgendwelche Nachwirkungen haben kann… Bei SharePoint weiss man ja nie 😉

      Gruss aus dem Wallis

      Abi

  3. Ciao, ah I see. Es wird nicht der Displayname geändert, sondern der samaccountname. Ich würde folgendes Vorgehen auswählen: Namen einesTestbenutzers ändern, Full Crawl in Profile Sync Service durchführen und kontrollieren, ob der Name erfolgreich geändert worden ist und die Gruppenzugehörigkeit erhalten geblieben ist. Nutzt ihr ausschliesslich AD-Gruppen für die Berechtigungsvergabe im SharePoint? Hier ein Stackexchange Thread mit einem Problembeschrieb, wie er vielleicht auftreten könnte:

    https://sharepoint.stackexchange.com/questions/26527/update-user-profile-for-user-whose-account-name-has-changed-in-ad

    Falls es wirklich ein Problem geben sollte, findest du im Thread bereits einige Lösungsvorschläge.

    Gruss aus Obwalden 🙂

    Janik

Leave a Reply