web-dev-qa-db-ja.com

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

これは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」
  • フォルダのセキュリティ設定を「全員>フルコントロール」に設定する
  • -力

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

髪を抜いて...

11
ErOx

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

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

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

9
Rynant

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

1
x0n