Unblock-File (Microsoft.PowerShell.Utility)
Unblock-File
- Модуль:
- Microsoft.PowerShell.Utility
Разблокирует файлы, скачанные из Интернета.
Синтаксис
Unblock-File
[-Path] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]Unblock-File
-LiteralPath <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]Описание
Этот командлет работает только на платформах Windows и macOS.
Командлет Unblock-File позволяет открывать файлы, загруженные из Интернета. Он разблокирует файлы сценариев PowerShell, загруженные из Интернета, чтобы вы могли запускать их, даже если политика выполнения PowerShell — RemoteSigned. По умолчанию эти файлы блокируются, чтобы защитить компьютер от ненадежных файлов.
Прежде чем использовать командлет Unblock-File, просмотрите файл и его исходный код и убедитесь, что его можно безопасно открыть.
Внутренне командлет Unblock-File удаляет альтернативный поток данных Zone.Identifier, который имеет значение 3, указывающее, что он был загружен из Интернет.
Дополнительные сведения о политиках выполнения PowerShell см. в разделе about_Execution_Policies.
Этот командлет был представлен в Windows PowerShell 3.0.
Примеры
Пример 1. Разблокировать файл
Эта команда разблокирует файл PowerShellTips.chm.
PS C:\> Unblock-File -Path C:\Users\User01\Documents\Downloads\PowerShellTips.chmПример 2. Разблокировать несколько файлов
Эта команда разблокирует все файлы в каталоге C:\Downloads, имена которых включают «PowerShell». Не запускайте подобную команду, пока не убедитесь, что все файлы безопасны.
PS C:\> dir C:\Downloads\*PowerShell* | Unblock-FileПример 3. Найдите и разблокируйте скрипты
Эта команда показывает, как найти и разблокировать сценарии PowerShell.
Первая команда использует параметр Stream командлета Get-Item для получения файлов с потоком Zone.Identifier.
Вторая команда показывает, что происходит, когда вы запускаете заблокированный скрипт в сеансе PowerShell, в котором используется политика выполнения RemoteSigned. Политика RemoteSigned запрещает запуск сценариев, загруженных из Интернета, если они не имеют цифровой подписи.
Третья команда использует командлет Unblock-File, чтобы разблокировать сценарий, чтобы он мог работать в сеансе.
PS C:\> Get-Item * -Stream "Zone.Identifier" -ErrorAction SilentlyContinue
FileName: C:\ps-test\Start-ActivityTracker.ps1
Stream Length
------ ------
Zone.Identifier 26
PS C:\> C:\ps-test\Start-ActivityTracker.ps1
c:\ps-test\Start-ActivityTracker.ps1 : File c:\ps-test\Start-ActivityTracker.ps1 cannot
be loaded. The file c:\ps-test\Start-ActivityTracker.ps1 is not digitally signed. The script
will not execute on the system. For more information, see about_Execution_Policies.
At line:1 char:1
+ c:\ps-test\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
PS C:\> Get-Item C:\ps-test\Start-ActivityTracker.ps1 | Unblock-FileПараметры
-Confirm
Запрашивает подтверждение перед запуском командлета.
- Тип :
SwitchParameter
- Псевдонимы:
cf
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-LiteralPath
Указывает файлы для разблокировки. В отличие от Path, значение параметра LiteralPath используется точно так, как оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки ('). Одинарные кавычки сообщают PowerShell не интерпретировать никакие символы как escape-последовательности.
- Тип :
String[]
- Псевдонимы:
PSPath, LP
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
False
-Path
Указывает файлы для разблокировки. Поддерживаются подстановочные знаки.
- Тип :
String[]
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
True
-WhatIf
Показывает, что произойдет, если командлет запустится. Командлет не запускается.
- Тип :
SwitchParameter
- Псевдонимы:
wi
- Позиция:
Именованный
- Значение по умолчанию:
False
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
Входы
Строка
Вы можете передать путь к файлу этому командлету.
Выходы
Нет
Этот командлет не возвращает никаких результатов.
Примечания
- Поддержка macOS была добавлена в PowerShell 7.
- Командлет
Unblock-Fileработает только на дисках с файловой системой. Unblock-Fileвыполняет ту же операцию, что и кнопка Разблокировать в диалоговом окне Свойства в проводнике.- Если вы используете командлет
Unblock-Fileдля незаблокированного файла, команда не окажет никакого влияния на разблокированный файл, и командлет не выдаст ошибок.