TechBlog

Teknik och filosofi

Hitta unika behörigheter i SharePoint

inga kommentarer

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(); 

 
 
 

Av kalle

november 7th, 2013 at 11:58 e m

Postat i Okategoriserade

Kommentera