Powershell Accesso al percorso negato


11

Sono sicuro che questo è stato chiesto un milione di volte, ma non riesco a capire perché non posso eseguire questo semplice comando in PowerShell:

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

Ricevo sempre il seguente errore:

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

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

Comunque,

Ho provato TUTTO quanto segue, senza risultati:

  • Esecuzione di PowerShell come amministratore (ovvero "Esegui come amministratore")
  • Set-ExecutionPolicy RemoteSigned
  • "takeown" nella cartella
  • impostando le impostazioni di sicurezza nella cartella su: "tutti> controllo completo"
  • -VIGORE

Dove diavolo dovrei andare a caccia di una risposta dopo? Sono un amministratore sul mio computer locale. Questo è estremamente frustrante non avere i diritti di fare qualcosa di semplice come creare uno stupido file di testo ...

Tirare fuori i capelli ...


Hai provato con il parametro -Force?
EBGreen

ho appena provato, stesso errore (lo aggiungerò ora alla mia lista sopra)
ErOx

Alcuni test su XP non sono stati in grado di creare file o cartelle nelle cartelle degli utenti (nel mio caso C: \ Documents and Settings). Posso eseguirlo in C: \ comunque. Deve fare qualcosa con ACL o simili.
Mechaflash,

Risposte:


9

Il formato stringa DateTime restituito da Get-Datecontiene caratteri che non possono essere utilizzati per i nomi dei file. Prova qualcosa del genere:

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

Basta cambiare la stringa di formato per soddisfare le tue esigenze.


1
Duh ... buona cattura.
EBGreen

1

Il problema è che -name (get-date).txtnon è lo stesso di (get-date) + ".txt". Il primo tenterà di leggere una proprietà denominata "txt" System.DateTimesull'oggetto restituito e il secondo aggiungerà la stringa ".txt" a una rappresentazione in formato stringa della data. Nel primo, .txt come proprietà ritorna $nullperché non esiste. Questo, a sua volta, significa che stai cercando di eseguire in modo efficace il new-item -path .\desktop\folderquale restituisce l'accesso negato perché la cartella esiste già.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.