gpt4 book ai didi

powershell - PowerShell 可以捕获 GetChildItem 中的错误并继续循环吗?

转载 作者:行者123 更新时间:2023-12-04 01:46:36 26 4
gpt4 key购买 nike

我有一个 PowerShell 脚本,它在 for 循环中使用 GetChildItem 向下遍历文件系统。随着它的移动,它正在修复它发现的 ACL 问题(主要是在有人阻止了 BUILTIN\Administrators 帐户的情况下)......但有一些它无法自行处理,比如当我得到 [System.UnauthorizedAccessException]是一个明确的“拒绝”ACE。

这行代码如下所示:

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

当它偶然发现无法读取的路径时,它会给出以下异常:

Get-ChildItem : Access to the path 'C:\TEMP\denied' is denied. At Fix-ACLs.ps1:52 char:31 + foreach($file in Get-ChildItem <<<< $dirRoot -Recurse -ErrorAction Continue) { + CategoryInfo : PermissionDenied: (C:\TEMP\denied:String) [Get-ChildItem], Unauthorized AccessException + FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand



我想尝试/捕获或捕获错误,以便我可以就地修复 ACL(即删除“拒绝”),并且——最重要的是——继续循环而不会失去我的位置。对我有什么建议吗?

最佳答案

你用过静默继续吗?

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

关于powershell - PowerShell 可以捕获 GetChildItem 中的错误并继续循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6942747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com