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 |
Входные данные
Путь к файлу можно передать этому командлету.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
- Добавлена поддержка macOS в PowerShell 7.
- Командлет
Unblock-File
работает только на дисках файловой системы. Unblock-File
выполняет ту же операцию, что и кнопка "Разблокировать" в диалоговом окне "Свойства" в проводник.- Если вы используете
Unblock-File
командлет для файла, который не заблокирован, команда не влияет на разблокированный файл, и командлет не создает ошибок.
Связанные ссылки
PowerShell