
Я пробую эту строку кода, но она, похоже, не влияет на папки, только на файлы?
Get-ChildItem -Path $Path -Recurse -File | % { $_.IsReadOnly=$false }
Хорошо, я удалил -File из команды и получаю эту ошибку:
Свойство 'IsReadOnly' не может быть найдено для этого объекта. Убедитесь, что свойство существует и может быть установлено.
Однако если я щелкну правой кнопкой мыши по папке > Свойства, то там будет четко указано, что установлен флажок Только для чтения.
решение1
Не смотрите на папкуХарактеристикидиалог,the Только для чтенияфлажок не является индикатором статуса! Чтобы узнать, установлен ли атрибут «Только для чтения» для папки, добавьтеАтрибутыстолбец кПодробностивид родительской папки.
Чтобы установить/снять атрибут «Только чтение» для папки вPOerShell, использовать:
$Folder = Get-Item 'C:\Path\to\folder' # or any other vald way to obtain a IO.DirectoryInfo object
$Folder.Attributes -= 'ReadOnly' # clear REad-only
$Folder.Attributes += 'ReadOnly' # set REad-only
Обратите внимание, что очистка атрибута предотвращает обработку папки.рабочий стол.iniфайл, поэтому пользовательские значки и т. п. не применяются.