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