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 ...
Antworten:
Das von zurückgegebene DateTime-Zeichenfolgeformat
Get-Date
enthält Zeichen, die nicht für Dateinamen verwendet werden können. Versuchen Sie so etwas:Ändern Sie einfach die Formatzeichenfolge entsprechend Ihren Anforderungen.
quelle
Das Problem ist, dass
-name (get-date).txt
das nicht dasselbe ist wie(get-date) + ".txt"
. Ersterer versucht, eine Eigenschaft mit dem Namen "txt" für das zurückgegebeneSystem.DateTime
Objekt zu lesen , und letzterer hängt die Zeichenfolge ".txt" an eine Zeichenfolgendarstellung des Datums an. Im ersten$null
Fall wird .txt als Eigenschaft zurückgegeben, da es nicht vorhanden ist. Dies bedeutet wiederum, dass Sie versuchen, effektiv auszuführen,new-item -path .\desktop\folder
wodurch der Zugriff verweigert wird, da der Ordner bereits vorhanden ist.quelle