如何使用 PowerShell 解锁文件
如何使用 PowerShell 解锁文件
在Windows操作系统中,从互联网下载的文件可能会被系统自动阻止,以防止潜在的安全威胁。这种情况下,用户会看到类似"此文件来自另一台计算机,可能被阻止以帮助保护这台计算机"的提示。本文将详细介绍如何使用PowerShell中的Unblock-File cmdlet来解除对这些文件的阻止。
使用 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不会生成错误。