我確信這個問題已經被問過一百萬次了,但我不明白為什麼我不能在 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