Поделиться через


Unblock-File

Разблокирует файлы, скачанные из Интернета.

Синтаксис

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 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
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-LiteralPath

Указывает файлы для разблокировки. В отличие от пути, значение параметра LiteralPath используется точно так же, как он типизированный. Символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки ('). Одинарные кавычки говорят PowerShell не интерпретировать какие-либо символы как escape-последовательности.

Тип:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Path

Указывает файлы для разблокировки. Поддерживаются подстановочные знаки.

Тип:String[]
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-WhatIf

Показывает, что произойдет, если командлет выполняется. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

String

Путь к файлу можно передать в Unblock-File.

Выходные данные

None

Этот командлет не создает выходные данные.

Примечания

  • Добавлена поддержка macOS в PowerShell 7.
  • Командлет Unblock-File работает только на дисках файловой системы.
  • Unblock-File выполняет ту же операцию, что и кнопка разблокировать в диалоговом окне "Свойства " в проводнике.
  • Если вы используете командлет Unblock-File в файле, который не заблокирован, команда не влияет на разблокированный файл и командлет не создает ошибок.