none
Report in welchen Sitecollections ein User Mitglied ist RRS feed

  • Frage

  • Guten Morgen zusammen,

    ich hätte eine Frage und zwar: Gibt es eine Möglichkeit eine Abfrage zu generieren welche mir ausgibt in welchen Sitecollections ein User Mitglied ist? 

    Ich habe bereits ein PS Script in dem ich mir die User zu einer vordefinierten Sitecollection ausgeben kann:

    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
    $site = New-Object Microsoft.SharePoint.SPSite("http://intranet/vertrieb/docstore")
    $groups = $site.RootWeb.sitegroups
    foreach ($grp in $groups) {"Group: " + $grp.name | out-file C:\sets\result2.txt -append; foreach ($user in $grp.users) {"  User: " + $user.name | out-file C:\sets\result2.txt -append }  } 
    $site.Dispose()

    Ziel wäre es nun das Script so anzupassen das es in einer Schleife jede existente Sitecollection durchgeht und mir diese incl. deren Gruppen und Mitgliedern ausgibt.

    Optional eine IF Abfrage in der ich einen User angeben kann und mir nur Collections ausgegeben werden in denen dieser auch Mitglied ist.

    Hoffe auf eure Hilfe bin leider noch etwas unbeholfen in Powershell.

    Danke vorab!

    Donnerstag, 18. Februar 2016 08:08

Alle Antworten

  • Hallo Midoxx,

    schauen Sie hier:Discover what permissions user has in SharePoint Farm with PowerShell

    Gruß,

    Teodora


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Freitag, 19. Februar 2016 07:36
    Moderator
  • Hallo,

    ein wenig "Old School" das Skript :) es sei denn Ihr habt noch SharePoint 2007 im Einsatz.

    Hier ist eine Version die das Ergebnis als CSV speichert. Somit könnt ihr die Daten z.B. in Excel importieren und weiter filtern.

    Voraussetzung ist das der Account mit dem das Skript ausgeführt wird, in allen Site Collections berechtigt ist.

    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")|out-null
    
    $dt = New-Object System.Data.DataTable
    $dc1 = New-Object System.Data.DataColumn("SiteUrl")
    $dc2 = New-Object System.Data.DataColumn("Group")
    $dc3 = New-Object System.Data.DataColumn("UserName")
    $dc4 = New-Object System.Data.DataColumn("UserLoginName")
    $dt.Columns.Add($dc1)
    $dt.Columns.Add($dc2)
    $dt.Columns.Add($dc3)
    $dt.Columns.Add($dc4)
    
    foreach($webApp in [Microsoft.SharePoint.Administration.SPWebService]::ContentService.WebApplications) {
        $sites = $webApp.Sites
        foreach($site in $sites) {
            $groups = $site.RootWeb.sitegroups
            foreach($group in $groups) {
                foreach ($user in $group.users) {
                    $dr = $dt.Rows.Add($site.Url, $group.Name, $user.Name, $user.LoginName)
                }  
            }
            $site.Dispose()
        }
    }
    $dt|Export-Csv -Path "c:\tmp\results.csv" -Encoding UTF8 -Force

    Viele Grüße
    Andrei

    Dienstag, 1. März 2016 20:55