Поиск по сайту:

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 для незаблокированного файла, команда не окажет никакого влияния на разблокированный файл, и командлет не выдаст ошибок.