Powershell 存取路徑被拒絕

Powershell 存取路徑被拒絕

我確信這個問題已經被問過一百萬次了,但我不明白為什麼我不能在 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(即「以管理員身分執行」)
  • 設定執行策略 RemoteSigned
  • 資料夾上的“takeown”
  • 將資料夾的安全設定設為:“每個人 > 完全控制”
  • -力量

接下來我到底該去哪裡找答案呢?我是本機電腦的管理員。沒有權利做一些像創建一個愚蠢的文本文件這樣簡單的事情,這是非常令人沮喪的...

拔頭髮...

答案1

傳回的 DateTime 字串格式Get-Date包含不能用於檔案名稱的字元。試試這樣的事情:

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

只需更改格式字串即可滿足您的需求。

答案2

問題是-name (get-date).txt與 不一樣(get-date) + ".txt"。前者將嘗試讀取返回System.DateTime物件上名為“txt”的屬性,後者將字串“.txt”附加到日期的字串表示形式。在前者中,.txt 作為屬性傳回,$null因為它不存在。反過來,這意味著您正在嘗試有效地運行,new-item -path .\desktop\folder因為資料夾已存在而返回存取被拒絕。

答案3

由於只讀標誌,我也收到了此錯誤。可以使用以下方法修復此問題:

Set-ItemProperty -Path c:\users\me\desktop\testfolder -Name IsReadOnly -Value $true

相關內容