2011-10-12 19 views
29

PowerShellを初めて使用しています。フォルダの内容を削除し、それを別のフォルダからコピーしたファイルでいっぱいにする単純なスクリプトを書くと、私はいつもPermissionDeniedエラーを受け取ります。PowerShellでの許可エラー

詳細:

+ remove-item <<<< D:\path\* -recurse 
    + CategoryInfo : PermissionDenied: (save.gif:FileInfo) [Remove-Item], IOException 
    + FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand 

問題がありますか?私はエクスプローラで両方のフォルダを操作することができます。 スクリプトファイルとシェル(Windows PowerShell ISEを使用)から実行しているときにエラーが発生します。 ISEプロセスは自分のアカウントで実行されます。 私はWindows 7 Professionalを実行しており、ローカル管理者です。

編集: リチャードの提案の後、私は冗長モード(効果がないようです)を試しました。

PS Z:\> $error[0] | fl * -force 

PSMessageDetails  : 
Exception    : System.IO.IOException: Not Enough permission to perform operation. 
TargetObject   : D:\path\file.txt 
CategoryInfo   : PermissionDenied: (D:\path\file.txt:FileInfo) [Remove-Item], IOException 
FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand 
ErrorDetails   : Cannot remove item D:\path\file.txt: Not Enough permission to perform operation. 
InvocationInfo  : System.Management.Automation.InvocationInfo 
PipelineIterationInfo : {0, 1} 

私はそこに多くの用途はありませんが(とにかくチップに感謝します)。

編集2:

remove-item D:\path_A\* -recurse 
copy-item D:\path_B\* D:\path_A\ 

それだ: さて、ここではスクリプトのソースです。 remove-itemはすべてのファイルにスローされます。このエラーの後

+0

エラーに記載されているように、実際に** save.gif **と** file.txt **ファイルを削除する権限はありますか? –

+0

はい、コンソールが機能しなかったとき、私がやった最初のことは、手動で削除しようとしていたことでした。 (私はオープニングポストでこれも言ったが、少し曖昧だったかもしれない。)申し訳ありません。 – ver

+0

スクリプト自体を提供できますか? – JPBlanc

答えて

9

は、UACが有効になっていますか?その場合は、PowerShellセッションを「管理者」として実行してみてください。実際には、オブジェクトを削除する権限がないようです。

私は非常に限定的なセキュリティポリシーを採用しています。私はUACに精通していないユーザーに常時焼き付けられています。

1

(およびそれにその時点で最新のエラーを想定):

$error[0] | fl * -force 

はエラーと例外の詳細を展開します。それはより多くの情報を与えるはずです。行うには

もう一つは、エラーが発生したときに、特にどのような操作が実行されているの詳細を取得するために、詳細ログを

$VerbosePreference = "Continue" 

を切り替えることです。

最後にPowerShell ISEには、スクリプトをステップ実行できるデバッガが含まれています。

99

あなたは試してみる:

remove-item D:\path_A\* -recurse -force 
+39

Forceが指定されていない限り、適切なアクセスであっても、誤解を招きやすいため、PermissionDeniedエラーは、*読み込み専用ファイル*が削除されるディレクトリ内に存在するとスローされます。 – piers7

+4

+1。それも私のために働いた。エラーメッセージは誤解を招きます。 :-) –

+0

+1。答えJPBlancと感謝のためにありがとう@ piers7 – Riscie

2

上記の投稿に記載された理由に加えて、ファイルが別のプロセスによってアクセスされているときに「アクセス拒否」エラーがスローされることがわかりました(私の場合は、アイテムは正常に実行されました)。

関連する問題