Я использую команду Powershell $TargetFiles = Get-Childitem $TargetPath -Recurse -ErrorAction Stop | Get-Acl
.
Если эта команда не выполнена из-за того, что ее пользователь не имеет прав доступа к какому-либо файлу или каталогу, возникает следующая ошибка:
Get-Acl : Attempted to perform an unauthorized operation.
At B:\PS\Script.ps1:20 char:50
+ $TargetFiles = Get-Childitem $TargetPath -Recurse -ErrorAction Stop <<<<
+ CategoryInfo : NotSpecified: (:) [Get-Acl], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetAclCommand
При обработке этого исключения я хотел бы распечатать путь к файлу или каталогу, вызвавшему ошибку разрешения.
Как получить путь к файлу или каталогу, вызвавшему эту ошибку?
У меня естьпопытался использовать команды, такие как Get-PSCallStack
, и посмотрел на переменные, такие как $StackTrace
, но не смог найти эту информацию из них.
Версия Powershell, которую я использую:
Major Minor Build Revision
----- ----- ----- --------
2 0 -1 -1
ОС - Windows7.