【发布时间】:2011-10-20 01:00:18
【问题描述】:
我有一个 PowerShell 脚本,它在 for 循环中使用 GetChildItem 向下递归文件系统。随着它的移动,它正在修复它发现的 ACL 问题(主要是有人阻止了 BUILTIN\Administrators 帐户)......但是有些它自己无法处理,比如当我得到 [System.UnauthorizedAccessException] 如果有是一个明确的“拒绝”ACE。
这行代码如下所示:
foreach($file in Get-ChildItem $dirRoot -Recurse -ErrorAction Continue) {
...
}
当它偶然发现无法读取的路径时,它会给出以下异常:
Get-ChildItem:对路径“C:\TEMP\denied”的访问被拒绝。在 修复 ACLs.ps1:52 字符:31 + foreach($file in Get-ChildItem
我想尝试/捕获或捕获错误,以便我可以就地修复 ACL(即删除“拒绝”),并且 - 最重要的是 - 继续循环而不会失去我的位置。对我有什么建议吗?
【问题讨论】:
-
给出一些你正在使用的代码
标签: powershell try-catch acl