Ich versuche, mithilfe von PowerShell eine Liste aller Berechtigungen für einige Netzwerkordner zu erhalten. Leider stoße ich auf die gefürchtete PathTooLongException, also versuche ich Robocopy als Workaround zu benutzen. Ich bin jedoch ein absoluter Neuling mit PowerShell und hoffe auf ein wenig Hilfe. Der einfachste Befehl, den ich mir ausgedacht habe, istAbrufen von ACL-Informationen mithilfe von PowerShell und Robocopy aufgrund von PathTooLongException
Get-Childitem "S:\StartingDir" -recurse | Get-Acl | Select-Object path,accestostring | Export-Csv "C:\export.csv"
Das funktioniert und macht was ich will außer die Ausnahme, die ich bekomme. Wie würde ich Robocopy in diese Anweisung einfügen, um die Ausnahme zu umgehen? Irgendwelche Gedanken?
Haben Sie versucht, Get-ChildItem "\\? \ S: \ StartingDir" '? Ich weiß nicht, ob PowerShell mit langen Pfaden arbeiten wird, aber es wäre einen Versuch wert. –
Ich hatte diese "\\" -Klausel schon einmal gefunden, aber es scheint überhaupt nicht zu funktionieren. Das Skript wird nicht einmal ausgeführt, wenn ich es hinzufüge. – cardician
Ich habe damit gespielt, und Sie können die langen Dateinamen mit Robocopy mit '$ files = Robocopy c: \ Temp NULL/L/S/NJH/NJS/NDL/NS/NC 'bekommen, dann durchlaufen Sie sie mit 'foreach ($ Datei in $ Dateien) {'. Get-Acl behandelt jedoch nicht die langen Namen, so dass es immer noch nicht funktioniert. Auch versucht cacls.exe - funktioniert auch nicht mit langen Pfaden. Ich versuchte die Methode an http://stackoverflow.com/questions/27805419/get-folder-ntfs-acl-on-long-path-name, um ein PSDrive abzubilden, aber ich konnte das nicht bekommen, um mit Get-ACL zu arbeiten entweder. Wenn Sie über eine überschaubare Anzahl von Stellen verfügen, an denen dies auftritt, können Sie Freigaben verwenden. –