如何跳过 Get-ChildItem 返回访问被拒绝的错误

How to skip error of Get-ChildItem returning Access denied

我的 powershell 脚本有问题,我正在尝试递归地在文件夹中查找文件。我正在查看的文件夹是 %temp%。不幸的是,在此文件夹中,有一些文件夹受管理员权限保护。然后当我使用 Get-ChildItem 时,它 return 除了错误 (UnauthorizedAccessException)。

这是我的代码:

$path= (Get-ChildItem -path $ENV:TEMP -force -Recurse -Include logMyApp.txt).FullName

我也试过 -ErrorAction SilentlyContinue 但它不起作用。

感谢您的宝贵时间:)

编辑:试图打招呼,但没有用,Whosebug 策略?

在针对 FileSystem 提供商使用 Get-ChildItem 时,避免组合 -Recurse-Include/-Exclude 参数 - 它们在 技术 意义,但它们的行为是部分冗余的(-Include/-Exclude 尝试独立地递归文件树),这有时会导致意外、错误和缓慢的枚举行为。

对于简单的包含模式,使用 -Filter 代替 -Include:

$path = (Get-ChildItem -path $ENV:TEMP -force -Recurse -Filter logMyApp.txt -ErrorAction SilentlyContinue).FullName