パスへのPowershellアクセスが拒否されました


11

これは100万回も要求されていると思いますが、なぜこの簡単なコマンドをpowershellで実行できないのかわかりません。

PS> new-item -path c:\users\me\desktop\testfolder -name (get-date).txt -value (get-date).toString() -itemtype file

次のエラーが発生します。

New-Item : Access to the path 'C:\Users\Me\desktop\testfolder' is denied.

... PermissionDenied: ... UnauthorizedAccessException
... FullyQualifiedErrorId: NewItemUnauthorizedAccessError,Microsoft.PowerShell...

とにかく、

私は次のすべてを試しましたが、役に立ちません:

  • 管理者としてのPowerShellの実行(つまり、「管理者として実行」)
  • Set-ExecutionPolicy RemoteSigned
  • フォルダの「takeown」
  • フォルダのセキュリティ設定を「全員>フルコントロール」に設定
  • -力

次に答えを探すためにどこに行くべきですか?私は自分のローカルマシンの管理者です。これは、愚かなテキストファイルを作成するような単純なことを実行する権限がないと非常にイライラします...

髪を抜いて...


-Forceパラメーターを試しましたか?
EBGreen 2012年

試したところ、同じエラーが発生しました(これを上記のリストに追加します)
ErOx

XPでいくつかのテストを行いましたが、ユーザーフォルダー(私の場合はC:\ Documents and Settings)にファイルまたはフォルダーを作成できません。ただし、これはC:\で実行できます。ACLなどで何かをする必要があります。
Mechaflash 2012年

回答:


9

によって返されるDateTime文字列形式にはGet-Date、ファイル名に使用できない文字が含まれています。このようなものを試してください:

new-item -path .\desktop\testfolder -name "$(get-date -format 'yyyyMMdd_HHmm').txt" `
        -value (get-date).toString() -itemtype file

必要に応じてフォーマット文字列を変更するだけです。


1
ええと...良いキャッチ。
EBGreen 2012年

1

問題はと-name (get-date).txt同じではありません(get-date) + ".txt"。前者は返されたSystem.DateTimeオブジェクトの「txt」というプロパティを読み取ろうとし、後者は日付の文字列表現に文字列「.txt」を追加します。前者では、プロパティとしての.txt $nullは存在しないため、返されます。これは、new-item -path .\desktop\folderフォルダが既に存在するために拒否されたアクセスを返す、効果的な実行を試みていることを意味します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.