如何使用 PowerShell 解锁文件

如何使用 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 不会生成错误。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相关文章 - PowerShell File