如何使用 PowerShell 解锁文件

如果我们使用基于 Windows 的操作系统,您可能遇到了以下消息:
This file came from another computer and might be blocked to help protect this computer.
例如,当您尝试打开从互联网上下载的文件时,可能会弹出警告。本文将讨论如何使用 PowerShell 解除阻止并允许从互联网下载的文件。
使用 PowerShell 解除阻止文件
在本文中,我们将使用 PowerShell 原生 cmdlet,Unblock-File
,该命令在 PowerShell 3.0 中引入。
Unblock-File
cmdlet 允许我们打开从互联网下载的文件。此外,它解除阻止我们从互联网上下载的 Windows PowerShell 脚本文件,以便我们可以运行它们,即使 Windows PowerShell 执行策略设置为 RemoteSigned
。
这些文件默认被阻止,以保护计算机免受不可信文件的影响。
基本语法:
Unblock-File [-Path*] <String[]> [-Confirm] [-WhatIf] [<CommonParameters>]
在内部,Unblock-File
cmdlet 移除 Zone.Identifier
备用数据流,该数据流的值为 3
,以指示我们是从互联网下载的。有关 Windows PowerShell 执行策略的更多信息,请参见 about_Execution_Policies。
参数
以下是我们可以与 Unblock-File
cmdlet 一起使用的一些参数:
-
-Confirm
:此参数在运行 cmdlet 之前提示您确认。 -
-LiteralPath
:指定要解除阻止的文件。与Path
不同,LiteralPath
参数的值按输入的方式使用;没有字符被解释为通配符。如果路径包含转义字符,请将其括在单引号中。单引号告诉 Windows PowerShell 不要将字符解释为转义序列。
-
-Path
:指定要解除阻止的文件。支持通配符字符。 -
-WhatIf
:这显示如果 cmdlet 运行将会发生什么。cmdlet 不执行。
示例
我们可以通过指定被阻止文件的文件路径来使用 Unblock-File
cmdlet:
Unblock-File -Path C:\Downloads\SampleFile.exe
我们使用 PowerShell 的主要原因是我们要么需要自动化过程,要么批量处理事情。由于我们可以在管道中使用 Unblock-File
命令,因此可以在查询文件夹中的所有内容后使用该命令。
查询后,我们将处理 Unblock-File
命令中的所有文件。
dir -Path "C:\Downloads" -Recurse | Unblock-File
此外,Unblock-File
cmdlet 仅在文件系统驱动器中工作。Unblock-File
cmdlet 执行与文件资源管理器的属性对话框中的解除阻止按钮相同的操作。
因此,如果您在未被阻止的文件上使用 Unblock-File
cmdlet,该命令不会影响已解除阻止的文件,并且 cmdlet 不会生成错误。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn