Powershell заборонено в доступі до шляху


11

Я впевнений, що про це запитували мільйон разів, але я не можу зрозуміти, чому я не можу запустити цю просту команду в powershell:

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

Я назавжди отримую таку помилку:

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

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

У будь-якому випадку,

Я спробував ВСЕ з наступного, безрезультатно:

  • Запуск повноважень як адміністратор (тобто "Запуск як адміністратор")
  • Set-ExecutionPolicy RemoteSigned
  • "takeown" у папці
  • встановивши параметри безпеки в папці: "всі> повний контроль"
  • -ФОРС

Куди, чорт, слід піти полювати далі за відповіддю? Я адміністратор на своїй локальній машині. Це надзвичайно засмучує не мати прав робити щось таке просто, як створити дурний текстовий файл ...

Витягнення волосся ...


Ви пробували з параметром -Force?
EBGreen

щойно спробував, та сама помилка (я додам це до свого вище списку зараз)
ErOx

Зробив тест на XP, не вдається створити файли чи папки в папках користувача (у моєму випадку C: \ Документи та налаштування). Я можу виконати це на C: \ Однак. Доводиться щось робити з ACL або подібним.
Мечафлаш

Відповіді:


9

Формат рядка DateTime, що повертається, Get-Dateмістить символи, які не можна використовувати для імен файлів. Спробуйте щось подібне:

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

Просто змініть рядок формату, щоб задовольнити ваші потреби.


1
Да ... хороший улов.
EBGreen

1

Питання в тому, що -name (get-date).txtце не те саме, що (get-date) + ".txt". Перший спробує прочитати властивість з назвою "txt" на поверненому System.DateTimeоб'єкті, а останній додасть рядок ".txt" до рядкового подання дати. У першому .txt як властивість повертається, $nullоскільки його не існує. Це, в свою чергу, означає, що ви намагаєтеся ефективно запускати, new-item -path .\desktop\folderякий повертає доступ заборонено, оскільки папка вже існує.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.