У меня есть сценарий, в котором я рекурсивно удаляю несколько наборов файлов в определенном каталоге. Проблема заключается в спецификации этого каталога.Подстановочный шаблон для каталога Get-Childitem «Доступ запрещен»
Когда я пытаюсь указать его явно (т.е. очистить только user1 реж) он работает отлично:
$temp = "C:\Users\user1\AppData\Local\Temp\"
Get-ChildItem $temp -Recurse -Force -Verbose -ErrorAction SilentlyContinue | remove-item -force -Verbose -recurse -ErrorVariable FailedItems -ErrorAction SilentlyContinue
Однако, когда я указываю его с групповым символом (то есть влиять на все пользователей на этом компьютере)
$temp = "C:\Users\*\AppData\Local\Temp\*"
Get-ChildItem $temp -Recurse -Force -Verbose -ErrorAction SilentlyContinue | remove-item -force -Verbose -recurse -ErrorVariable FailedItems -ErrorAction SilentlyContinue
Он завершается с ошибкой
Get-ChildItem : Access is denied
At line:7 char:1
+ Get-ChildItem $localTempDir -Recurse -Force -Verbose -ErrorAction Sil ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-ChildItem], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetChildItemCommand
Как это могло быть? Это определенно не проблема с разрешениями, потому что это те же реж. И да, я запускаю скрипт с повышенными привилегиями.
Другие источники, указанные в таком формате, например.
C:\Users\*\AppData\Local\Microsoft\Windows\Caches
C:\Windows\Temp\*
очищены как очарование.
Привет , не могли ли это быть связаны со специальными/скрытыми/системными папками профиля? например 'По умолчанию' – sodawillow
Может быть. Как диагностировать это? – Suncatcher
Перечислять профили, исключать специальные, применять остальную часть вашей логики? – sodawillow