Kategorier
Okategoriserade

Hitta unika behörigheter i SharePoint

Det finns många skript där ute för att hitta unika vilka dokumentbibliotek, mappar och filer som har unika behörigheter i SharePoint (icke-ärvda).

Av olika anledningar vart jag tvungen att skriva ett eget igår, och det vart såklart lite bättre. Mitt script startar vid en Site (SPSite) och går sedan igenom alla siter, alla dokumentbibliotek och listor, alla mappar och till sist alla filer.

function OutputObject
{
    param ($url,$type,$unique)
    $obj = New-Object PSObject
    $obj | Add-Member NoteProperty Url($url)
    $obj | Add-Member NoteProperty Type($type)
    $obj | Add-Member NoteProperty HasUniqueRoleAssignments($unique)
    Write-Output $obj
}  

function DirRecusively
{
    param ($web,$folder)

    foreach ($subfolder in $folder.SubFolders)
    {
        $url=$web.Url + "/" + $subfolder.Url
        OutputObject $url "Folder" $subfolder.Item.HasUniqueRoleAssignments
        DirRecusively $web $subfolder
    }
    foreach ($file in $folder.Files)
    {
        $url=$web.Url + "/" + $folder.Url + "/" + $file.Name
        OutputObject $url "File" $file.Item.HasUniqueRoleAssignments
    }

}

[System.Reflection.Assembly]::Load("Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | out-null
$siteURL = https://YourSharePoint/
$site=new-object Microsoft.SharePoint.SPSite($siteURL)

foreach($web in $site.AllWebs)
{
    OutPutObject $web.url "Web" $web.HasUniqueRoleAssignments
    foreach($list in $web.Lists)
    {
        $type="List"
        if($list.GetType() -eq "SPDocumentLibrary")
        {
            $type="Library"
        }
        $url = $web.Url + "/" + $list.Rootfolder.Url
        OutputObject $url $type $list.HasUniqueRoleAssignments
        DirRecusively $web $list.RootFolder
    }
}

$site.Dispose(); 

 
 
 

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *