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-Date
enthä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).txt
nicht dasselbe ist wie (get-date) + ".txt"
. Ersteres versucht, eine Eigenschaft namens „txt“ im zurückgegebenen System.DateTime
Objekt zu lesen, und letzteres hängt die Zeichenfolge „.txt“ an eine Zeichenfolgendarstellung des Datums an. Im ersteren Fall wird .txt als Eigenschaft zurückgegeben, $null
da es nicht existiert. Dies wiederum bedeutet, dass Sie versuchen, effektiv auszuführen, new-item -path .\desktop\folder
was „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