Powershell Доступ к пути запрещен

Powershell Доступ к пути запрещен

Я уверен, что этот вопрос задавался миллион раз, но я не могу понять, почему я не могу выполнить эту простую команду в 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...

В любом случае,

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

  • Запуск PowerShell от имени администратора (т.е. «Запуск от имени администратора»)
  • Set-ExecutionPolicy Удаленная подпись
  • "takeown" на папке
  • установка параметров безопасности для папки: «все > полный доступ»
  • -СИЛА

Куда, черт возьми, мне теперь идти за ответом? Я администратор на своей локальной машине. Это крайне раздражает, когда нет прав на что-то такое простое, как создание дурацкого текстового файла...

Вырывание волос...

решение1

Формат строки DateTime, возвращаемый функцией, Get-Dateсодержит символы, которые нельзя использовать для имен файлов. Попробуйте сделать что-то вроде этого:

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

Просто измените строку формата в соответствии со своими потребностями.

решение2

Проблема в том, что это -name (get-date).txtне то же самое, что и (get-date) + ".txt". Первый попытается прочитать свойство с именем "txt" в возвращаемом System.DateTimeобъекте, а последний добавит строку ".txt" к строковому представлению даты. В первом случае возвращается свойство .txt, $nullпоскольку оно не существует. Это, в свою очередь, означает, что вы пытаетесь эффективно запустить , new-item -path .\desktop\folderкоторый возвращает отказ в доступе, поскольку папка уже существует.

решение3

Я также получил эту ошибку из-за флага «только для чтения». Это можно исправить с помощью:

Set-ItemProperty -Path c:\users\me\desktop\testfolder -Name IsReadOnly -Value $true

Связанный контент