【问题标题】:How to skip error of Get-ChildItem returning Access denied如何跳过 Get-ChildItem 返回访问被拒绝的错误
【发布时间】:2020-08-02 19:12:16
【问题描述】:

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

这是我的代码:

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

我也尝试了 -ErrorAction SilentlyContinue,但它不起作用。

感谢您的宝贵时间:)

编辑:试图打个招呼,但它不起作用,stackoverflow 策略?

【问题讨论】:

  • 使用 -Filter 代替 -Include 然后再次尝试使用 -ErrorAction SilentlyContinue :)
  • @MathiasR.Jessen Omg 你为我节省了很多时间!谢谢!
  • 我认为拒绝访问部分并不重要。

标签: powershell access-denied get-childitem


【解决方案1】:

在针对Get-ChildItem 提供程序使用Get-ChildItem 时,避免将-Recurse-Include/-Exclude 参数组合在一起 - 它们在技术 的意义上不是相互排斥的,而是它们的行为部分冗余(-Include/-Exclude 尝试独立递归文件树),这有时会导致意外、错误和缓慢的枚举行为。

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

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

【讨论】:

  • 优秀的答案!已经为此奋斗了几天,这正是我所需要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-06-28
  • 2015-06-25
  • 1970-01-01
  • 2020-10-26
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多