Как пропустить ошибку Get-ChildItem, возвращающую доступ запрещен - PullRequest
0 голосов
/ 02 августа 2020

У меня проблема с моим скриптом PowerShell, я постоянно пытаюсь найти файл в папке. Папка, в которой я ищу, -% temp%. К сожалению, в этой папке есть папка, защищенная правами администратора. Затем, когда я использую Get-ChildItem, он ничего не возвращает, кроме ошибки (UnauthorizedAccessException).

Вот мой код:

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

Я также пробовал с -ErrorAction SilentlyContinue, но он не работа.

Спасибо за ваше время :)

Редактировать: Пытаюсь сказать привет, но это не работает, политика stackoverflow?

1 Ответ

5 голосов
/ 02 августа 2020

Избегайте комбинирования параметров -Recurse и -Include / -Exclude при использовании Get-ChildItem против FileSystem провайдера - они не являются взаимоисключающими в техническом смысле, но их поведение частично избыточный (-Include / -Exclude пытается рекурсировать дерево файлов независимо), и это иногда может приводить к неожиданному, ошибочному и медленному перечислению.

Для простых шаблонов включения используйте -Filter вместо -Include:

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