Powershell Zugriff auf den Pfad verweigert


10

Ich bin mir sicher, dass dies eine Million Mal gefragt wurde, aber ich kann nicht herausfinden, warum ich diesen einfachen Befehl in Powershell nicht ausführen kann:

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

Ich erhalte für immer den folgenden Fehler:

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

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

Sowieso,

Ich habe ALLES versucht, ohne Erfolg:

  • Powershell als Administrator ausführen (dh "Als Administrator ausführen")
  • Set-ExecutionPolicy RemoteSigned
  • "takeown" für den Ordner
  • Festlegen der Sicherheitseinstellungen für den Ordner auf "Jeder> Vollzugriff"
  • -MACHT

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 zu haben, um etwas so Einfaches wie das Erstellen einer dummen Textdatei zu tun ...

Haare ausreißen ...


Hast du es mit dem -Force-Parameter versucht?
EBGreen

habe gerade versucht, den gleichen Fehler (ich werde das jetzt zu meiner obigen Liste hinzufügen)
ErOx

Habe einige Tests unter XP durchgeführt, kann keine Dateien oder Ordner in Benutzerordnern erstellen (in meinem Fall C: \ Dokumente und Einstellungen). Ich kann dies jedoch in C: \ ausführen. Hat was mit ACLs oder ähnlichem zu tun.
Mechaflash

Antworten:


9

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

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.


1
Duh ... guter Fang.
EBGreen

1

Das Problem ist, dass -name (get-date).txtdas nicht dasselbe ist wie (get-date) + ".txt". Ersterer versucht, eine Eigenschaft mit dem Namen "txt" für das zurückgegebene System.DateTimeObjekt zu lesen , und letzterer hängt die Zeichenfolge ".txt" an eine Zeichenfolgendarstellung des Datums an. Im ersten $nullFall wird .txt als Eigenschaft zurückgegeben, da es nicht vorhanden ist. Dies bedeutet wiederum, dass Sie versuchen, effektiv auszuführen, new-item -path .\desktop\folderwodurch der Zugriff verweigert wird, da der Ordner bereits vorhanden ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.