Как снять блокировку с файлов Windows: PowerShell скрипт для автоматизации
Иногда при работе на компьютере, особенно в терминальной среде или при ограниченных правах пользователя, возникают проблемы с открытием файлов. Одной из наиболее распространенных ошибок является сообщение: «Этот файл был получен с другого компьютера и мог быть заблокирован» (в английской версии Windows: «This file was received from another computer and may have been blocked»).
Система также может сообщать, что файл поврежден и не может быть прочитан, хотя это не так. Проблема связана с функцией безопасности Windows, которая автоматически блокирует файлы, полученные из внешних источников (например, скачанные из интернета).
Ручное решение
Обычно для устранения проблемы можно:
- Нажать правой кнопкой мыши на файл.
- Перейти в свойства.
- В разделе «Общие» найти сообщение «Этот файл был получен с другого компьютера» и установить галочку «Снять блокировку».
Но что делать, если таких файлов много или их регулярно загружают разные пользователи? Ручная разблокировка становится слишком трудоемкой.
Автоматизация с помощью PowerShell
Для быстрого решения проблемы я разработал скрипт на PowerShell. Он автоматически снимает блокировки со всех файлов в указанной папке и ее подкаталогах.
Вот сам скрипт:
# Укажите путь к папке_PowerPoint
$folderPath = "D:\SHARE\"
# Получение всех файлов в папке и подкаталогах
Get-ChildItem -Path $folderPath -Recurse | ForEach-Object {
# Снятие атрибута 'Zone.Identifier' (блокировки)
Unblock-File -Path $_.FullName
}
Вот собственно и всё. Можно просто скопировать скрипт и вставить в Power Shell, а можно сохранить с расширением *.ps1
Как использовать:
- Откройте PowerShell с правами администратора.
- Скопируйте этот код в консоль или сохраните его в файл с расширением .ps1.
- Укажите путь к папке, где находятся заблокированные файлы.
- Выполните скрипт.
Теперь все файлы в указанной папке будут автоматически разблокированы. Это простое решение поможет сэкономить время и избежать раздражающих предупреждений системы.