Tengo una secuencia de comandos de PowerShell que se repite a través del sistema de archivos utilizando GetChildItem en for-loop. Mientras viaja, está solucionando problemas de ACL que encuentra (sobre todo cuando alguien ha bloqueado la cuenta BUILTIN \ Administrators) ... pero hay algunos que no puede manejar por sí mismo, como cuando obtengo [System.UnauthorizedAccessException] si hay es un ACE explícito de "Denegar".¿Pueden los errores de captura de PowerShell en GetChildItem y continuar el bucle?
La línea de código es el siguiente:
foreach($file in Get-ChildItem $dirRoot -Recurse -ErrorAction Continue) {
...
}
Cuando se tropieza en un camino que no puede leer, da a esta excepción:
Get-ChildItem: acceso a la ruta 'C: \ TEMP \ denied' es denegado. En Fix-ACLs.ps1: 52 Char: 31 + ($ archivo en Get-ChildItem < < < < $ dirroot -Recurse -ErrorAction Continuar) foreach {+ CategoryInfo: PermissionDenied: (C: \ TEMP \ negado : String) [Get-ChildItem], AccessException no autorizado + FullyQualifiedErrorId: DirUnauthorizedAccessError, Microsoft.PowerShell.Commands.GetChildItemCommand
me gustaría probar/captura o captura el error para que pueda reparar el ligamento cruzado anterior (es decir, eliminar el "Denegar") en el lugar y, lo más importante, continuar el ciclo sin perder mi plac mi. Alguna sugerencia para mi?
Dale algo de código que está utilizando – manojlds