私はPowerShellを使用しており、次の行を含むスクリプトを(コンソールから)実行しています。
$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
スクリプトとターゲットファイルはすべて私のローカルドライブにあります。エクスプローラーでファイルにアクセスし、メモ帳を使用してファイルを表示/編集/保存できますが、アクセス許可の制限は設定されていません。コマンドラインを使用しているときget-content
は、パス内のファイルに対してコマンドレットを正常に実行できます。ディレクトリを変更PS C:> cd C:\users\xxxxx\path\foo\bar
して、そこにあるものを正常に一覧表示できます。さらに興味深いことに、スクリプトでエラーが発生している行を複製して、コマンドラインでエラーを受け取らないようにすることができます。
PS C:\users\xxxxx\path\foo> $inpath = "C:\users\xxxxx\path\foo\bar"
PS C:\users\xxxxx\path\foo>
これにより、「Permission Denied」エラーは実際には別のものであるか、トラブルシューティングを続行する方法がわからないほど漠然としたものであると思われます。PSが、それを実行しているユーザーとは異なる権限を持つことは可能ですか?誰かが以前にこの動作を見たことがありますか、そしてどのように問題を解決しましたか?私にはわからない簡単な解決策があると確信しています。