2016-08-08 53 views
0

Ich habe Schwierigkeiten, Get-Acl auf einem UNC-Pfad zu arbeiten, um die Freigabeberechtigungen eines Verzeichnisses und aller zugrunde liegenden Dateien und Verzeichnisse zu erhalten.Get-Acl scheint nicht auf UNC-Pfad zu arbeiten?

Der Code, den ich wie folgt aussieht verwenden:

$OutFile = "C:\Users\xxxx\Desktop\Permissions.csv" 
$Header = "Folder Path,IdentityReference,AccessControlType,IsInherited,InheritanceFlags,PropagationFlags,FileSystemRights" 
del $OutFile 
Add-Content -Value $Header -Path $OutFile 

$RootPath = "\\intranet\sites\folder1\folder2\target-folder-as-root" 

$Folders = dir $RootPath -Recurse 
#| where {$_.psiscontainer -eq $true}-recurse 

foreach ($Folder in $Folders) { 
    $ACLs = Get-Acl $Folder.Fullname | ForEach-Object { $_.Access } 
    foreach ($ACL in $ACLs) { 
     $OutInfo = $Folder.Fullname + "," + $ACL.IdentityReference + "," + 
        $ACL.AccessControlType + "," + $ACL.IsInherited + "," + 
        $ACL.InheritanceFlags + "," + $ACL.PropagationFlags + "," + 
        $ACL.FileSystemRights 
     Add-Content -Value $OutInfo -Path $OutFile 
    } 
} 

Nicht unter Berücksichtigung der Grenze Ausgabe Dateigröße dies verursachen könnten, bekomme ich folgende Fehlermeldung:

Get-Acl : Method failed with unexpected error code 1. 
At C:\Users\xxxx\Documents\ntfs_permissions.ps1:12 char:10 
+  $ACLs = Get-Acl $Folder.Fullname | ForEach-Object { $_.Access } 
+    ~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Get-Acl], InvalidOperationException 
    + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetAclCommand

finde ich Dokumentation auf Angebot Die freigegebenen Berechtigungen für ein freigegebenes Laufwerk, das den UNC-Pfad verwendet (ich möchte die Berechtigungen nicht beginnend mit dem Stamm, sondern nur von einem Unterordner aus auflisten), sind sehr begrenzt.

+0

Get-ACL der Dateisystemberechtigungen für einen Standard-SMB-Freigabe Weg zeigen, aber ich den gleichen Fehler, wenn Get-ACL zu verwenden versuchen, mit eine SharePoint-Website, so wie es aussieht, versuchen Sie zu tun. Ich glaube, das könnte daran liegen, dass es tatsächlich WebDAV und nicht SMB verwendet. –

+0

Können Sie mir weiterhelfen, wie Sie die freigegebenen Berechtigungen meiner Freigabedatei erhalten? – Don

+0

Ich habe Angst, ich habe nicht viel Erfahrung mit SharePoint-Administration. Ich schlage vor, dass Sie die verfügbaren SharePoint PowerShell-Snap-Ins oder Module untersuchen, um festzustellen, ob sie über ein Cmdlet verfügen, mit dem Sie Berechtigungen für eine Dokumentbibliothek erhalten können. –

Antwort

0

Versuchen zu verwenden: $ACLs = (Get-Acl $Folder.fullname).Access

Statt: $ACLs = Get-Acl $Folder.Fullname | ForEach-Object { $_.Access }