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 с потоком 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
Запрос подтверждения перед выполнением командлета.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
Указывает файлы для разблокирования. В отличие от параметра Path, значение параметра LiteralPath используется в точности так, как вводится. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки ('
). Одинарные кавычки предписывают PowerShell не интерпретировать какие-либо символы как escape-последовательности.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Указывает файлы для разблокирования. Поддерживаются подстановочные знаки.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Вы можете передать путь к файлу в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
- Поддержка macOS была добавлена в PowerShell 7.
- Командлет
Unblock-File
работает только на дисках файловой системы. Unblock-File
выполняет ту же операцию, что и кнопка Разблокировать в диалоговом окне Свойства в проводник.- Если вы используете
Unblock-File
командлет для файла, который не заблокирован, команда не влияет на разблокированный файл и командлет не создает ошибок.