Können PowerShell-trap Fehler in GetChildItem und weiter looping?

Habe ich ein PowerShell-Skript, das recursing nach unten durch die Datei system mit GetChildItem in einer for-Schleife. Wie es reist, es ist die Befestigung von ACL-Probleme, die es findet (meist, wo jemand blockiert hat, wird das Konto VORDEFINIERT\Administratoren)... aber es gibt einige, die es nicht umgehen kann, auf seine eigene, wie wenn ich [System.UnauthorizedAccessException] wenn es eine explizite "Verweigern" ass.

Die Codezeile sieht wie folgt aus:

foreach($file in Get-ChildItem $dirRoot -Recurse -ErrorAction Continue) {
    ...
}

Wenn es stolpert auf einem Pfad kann es nicht Lesen, es gibt diese Ausnahme:

Get-ChildItem : der Zugriff auf den Pfad 'C:\TEMP\denied' verweigert. Bei
Fix-ACLs.ps1:52 char:31
+ foreach($file in "Get-ChildItem" <<<< $dirRoot -Recurse -ErrorAction
"Weiter") {
+ CategoryInfo : PermissionDenied:
(C:\TEMP\denied:String) [Get-ChildItem], Autorisierte AccessException
+ FullyQualifiedErrorId :
DirUnauthorizedAccessError,Microsoft.PowerShell.Befehle.GetChildItemCommand

Möchte ich ein try/catch oder den Fehler abfangen, so dass ich kann die Reparatur des ACL (das ist, entfernen Sie die "Deny") in-place, und--am wichtigsten--continue die Schleife ohne meinen Platz. Irgendwelche Vorschläge für mich?

  • Geben Sie einige code, den Sie verwenden
InformationsquelleAutor ewall | 2011-08-04
Schreibe einen Kommentar