Powershell Odmowa dostępu do ścieżki


11

Jestem pewien, że zadawano to milion razy, ale nie mogę zrozumieć, dlaczego nie mogę uruchomić tego prostego polecenia w PowerShell:

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

Zawsze otrzymuję następujący błąd:

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

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

Tak czy siak,

Próbowałem WSZYSTKIE z poniższych, ale bezskutecznie:

  • Uruchamianie programu PowerShell jako administrator (tj. „Uruchom jako administrator”)
  • Set-ExecutionPolicy RemoteSigned
  • „takeown” w folderze
  • ustawienie ustawień zabezpieczeń w folderze na: „wszyscy> pełna kontrola”
  • -SIŁA

Gdzie, u licha, powinienem poszukać odpowiedzi? Jestem administratorem mojego komputera lokalnego. To bardzo frustrujące, że nie mam prawa robić czegoś tak prostego, jak tworzenie głupiego pliku tekstowego ...

Wyciąganie włosów ...


Czy próbowałeś z parametrem -Force?
EBGreen,

właśnie próbowałem, ten sam błąd (dodam teraz to do powyższej listy)
ErOx

Zrobiłem test na XP, nie mogę utworzyć plików lub folderów w folderach użytkowników (w moim przypadku C: \ Documents and Settings). Mogę to jednak wykonać w C: \. Ma coś wspólnego z listami ACL lub podobnymi.
Mechaflash,

Odpowiedzi:


9

Format ciągu DateTime zwracany przez Get-Datezawiera znaki, których nie można używać w nazwach plików. Wypróbuj coś takiego:

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

Wystarczy zmienić ciąg formatu, aby spełnić Twoje potrzeby.


1
Hmm ... dobry chwyt.
EBGreen,

1

Problem w tym, że -name (get-date).txtto nie to samo co (get-date) + ".txt". Pierwszy z nich spróbuje odczytać właściwość o nazwie „txt” na zwróconym System.DateTimeobiekcie, a drugi doda ciąg „.txt” do ciągu reprezentującego datę. W pierwszym przypadku .txt jako właściwość zwraca, $nullponieważ nie istnieje. To z kolei oznacza, że ​​próbujesz skutecznie uruchomić, new-item -path .\desktop\folderktóry zwraca odmowę dostępu, ponieważ folder już istnieje.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.