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


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 files with the Zone.Identifier stream.

Вторая команда показывает, что происходит при запуске заблокированного скрипта в сеансе 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

Указывает файлы для разблокирования. В отличие от параметра Path, значение параметра 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

Путь к файлу можно передать этому командлету.

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

None

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

Примечания

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