Powershell Zugriff auf den Pfad verweigert

Powershell Zugriff auf den Pfad verweigert

Ich bin sicher, dass dies schon millionenfach gefragt wurde, aber ich kann nicht herausfinden, warum ich diesen einfachen Befehl nicht in Powershell ausführen kann:

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

Ich erhalte ständig die folgende Fehlermeldung:

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

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

Ohnehin,

Ich habe ALLES Folgende versucht, ohne Erfolg:

  • Ausführen von Powershell als Administrator (d. h. „Als Administrator ausführen“)
  • Set-ExecutionPolicy RemoteSigned
  • "takeown" auf dem Ordner
  • Setzen der Sicherheitseinstellungen für den Ordner auf: „Jeder > Vollzugriff“
  • -GEWALT

Wo zum Teufel soll ich als nächstes nach einer Antwort suchen? Ich bin Administrator auf meinem lokalen Computer. Es ist äußerst frustrierend, keine Rechte für etwas so Einfaches wie das Erstellen einer dummen Textdatei zu haben ...

Haare ausreißen...

Antwort1

Das von zurückgegebene DateTime-Stringformat Get-Dateenthält Zeichen, die nicht für Dateinamen verwendet werden können. Versuchen Sie es mit etwas wie:

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

Ändern Sie einfach die Formatzeichenfolge entsprechend Ihren Anforderungen.

Antwort2

Das Problem ist, dass dies -name (get-date).txtnicht dasselbe ist wie (get-date) + ".txt". Ersteres versucht, eine Eigenschaft namens „txt“ im zurückgegebenen System.DateTimeObjekt zu lesen, und letzteres hängt die Zeichenfolge „.txt“ an eine Zeichenfolgendarstellung des Datums an. Im ersteren Fall wird .txt als Eigenschaft zurückgegeben, $nullda es nicht existiert. Dies wiederum bedeutet, dass Sie versuchen, effektiv auszuführen, new-item -path .\desktop\folderwas „Zugriff verweigert, da Ordner bereits vorhanden“ zurückgibt.

Antwort3

Ich habe diesen Fehler auch aufgrund des Nur-Lese-Flags erhalten. Dies kann wie folgt behoben werden:

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

verwandte Informationen