Powershell Akses ke jalan ditolak

11

Saya yakin ini telah ditanyakan jutaan kali, tetapi saya tidak tahu mengapa saya tidak dapat menjalankan perintah sederhana ini di PowerShell:

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

Saya selamanya mendapatkan kesalahan berikut:

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

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

Bagaimanapun,

Saya sudah mencoba SEMUA dari yang berikut, tetapi tidak berhasil:

  • Menjalankan PowerShell sebagai Administrator (mis., "Run as Administrator")
  • Set-ExecutionPolicy RemoteSigned
  • "takeown" pada folder
  • mengatur pengaturan keamanan pada folder ke: "semua orang> kontrol penuh"
  • -MEMAKSA

Di mana sih aku harus mencari jawaban selanjutnya? Saya seorang administrator di mesin lokal saya. Ini sangat menyebalkan karena tidak memiliki hak untuk melakukan sesuatu yang sederhana seperti membuat file teks bodoh ...

Menarik rambut ...

ErOx
sumber
Sudahkah Anda mencoba dengan parameter -Force?
EBGreen
baru saja mencoba, kesalahan yang sama (saya akan menambahkan itu ke daftar saya di atas sekarang)
ErOx
Melakukan beberapa pengujian pada XP, tidak dapat membuat file atau folder di folder pengguna (dalam kasus saya C: \ Documents and Settings). Saya dapat melakukan ini di C: \ Namun. Harus melakukan sesuatu dengan ACL atau sejenisnya.
Mechaflash

Jawaban:

9

Format string DateTime dikembalikan oleh Get-Dateberisi karakter yang tidak dapat digunakan untuk nama file. Coba sesuatu seperti ini:

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

Cukup ganti string format untuk memenuhi kebutuhan Anda.

Rynant
sumber
1
Duh ... tangkapan yang bagus.
EBGreen
1

Masalahnya adalah -name (get-date).txttidak sama dengan (get-date) + ".txt". Yang pertama akan mencoba membaca properti bernama "txt" pada System.DateTimeobjek yang dikembalikan , dan yang terakhir akan menambahkan string ".txt" ke representasi string dari tanggal. Di yang pertama, .txt sebagai properti kembali $nullkarena tidak ada. Ini, pada gilirannya, berarti Anda mencoba menjalankan secara efektif new-item -path .\desktop\folderyang mengembalikan akses ditolak karena folder sudah ada.

x0n
sumber