Я работаю с PowerShell, запустив script (с моей консоли), который включает эту строку:
$inpath = "C:\users\xxxxx\path\foo\bar"
и я получаю эту ошибку:
Get-Content : Access to the path 'C:\users\xxxxx\path\foo\bar' is denied.
At C:\users\xxxxx\path\foo\testscript.ps1:53 char:12
+ Get-Content <<<< $txtfile | Get-WordCount -Exclude (Get-Content c:\temp\exclude.txt) | select -First 15
+ CategoryInfo : PermissionDenied: (C:\users\xxxxx\path\foo\bar:String) [Get-Content], UnauthorizedAcc
essException
+ FullyQualifiedErrorId : GetContentReaderUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetContentCommand
Сценарии и целевые файлы находятся на моем локальном диске. Я могу получить доступ к файлам в Проводнике, просматривать/редактировать/сохранять их с помощью NotePad и не устанавливать никаких ограничений разрешений. Когда я нахожусь в командной строке, я могу успешно выполнить командлет get-content
в файлах на моем пути. Я могу изменить каталоги PS C:> cd C:\users\xxxxx\path\foo\bar
и успешно перечислить, что там. Еще более интересно, я могу дублировать строку с ошибкой в script и НЕ принимать сообщение об ошибке в командной строке.
PS C:\users\xxxxx\path\foo> $inpath = "C:\users\xxxxx\path\foo\bar"
PS C:\users\xxxxx\path\foo>
Это заставляет меня подозревать, что ошибка "Permission Denied" на самом деле является чем-то другим или чем-то неопределенным, что я не знаю, как продолжить устранение неполадок. Возможно ли, чтобы у PS были разные разрешения, чем у пользователя, в котором он работает? Кто-нибудь видел это поведение раньше, и как вы решили проблему? Я уверен, что есть простое решение, которое я не знаю.