当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 执行策略:解除阻止文件 |安全区

作者:精品下载站 日期:2024-12-14 07:38:10 浏览:14 分类:玩电脑

PowerShell 执行策略:解除阻止文件 |安全区


PowerShell的执行策略是一项安全功能,它控制PowerShell加载配置文件和运行脚本的条件。此功能有助于防止恶意脚本的执行。

https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2

嗯,这是执行政策的官方描述。该策略在 Windows 服务器操作系统上设置为 RemoteSigned,在 Windows 客户端操作系统上设置为受限。在这篇博文中,我想展示一个示例,说明如何找出文件的安全区域,并在需要时取消阻止该文件。

从 Internet 下载文件

让我们开始从互联网下载文件。

[玩转系统] PowerShell 执行策略:解除阻止文件 |安全区

我的系统上的执行策略设置为 RemoteSigned。这意味着从互联网下载的所有脚本都必须使用可信发布者的证书进行签名。就我而言,发布者不受信任。

[玩转系统] PowerShell 执行策略:解除阻止文件 |安全区

让我们检查一下。我尝试运行这个脚本。

[玩转系统] PowerShell 执行策略:解除阻止文件 |安全区

这正是我们所期望的。我们无法运行该脚本。

文件 C:\Users\PatrickGruenauersid-\Downloads\if_elseif.ps1 未经过数字签名。您无法在当前系统上运行此脚本。有关运行脚本和设置执行策略的详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkID=135170 上的 about_Execution_Policies。

收集有关此文件的信息

现在让我们深入了解一下这个下载的文件。

Get-Content C:\Users\PatrickGruenauersid-\Downloads\if_elseif.ps1 -Stream Zone.Identifier

[玩转系统] PowerShell 执行策略:解除阻止文件 |安全区

该文件引用ZoneId=3。什么是 ZoneId 3?

[enum]::GetValues([System.Security.SecurityZone]) + [enum]::GetValues([System.Security.SecurityZone]).value__

[玩转系统] PowerShell 执行策略:解除阻止文件 |安全区

区域 ID=3 是互联网区域。请记住我们从 0 开始。?

下一步是什么?我们可以更改执行策略或解锁文件。

解锁文件

幸运的是,有一个 cmdlet 可以解锁文件。

Unblock-File C:\Users\PatrickGruenauersid-\Downloads\if_elseif.ps1 -Verbose

[玩转系统] PowerShell 执行策略:解除阻止文件 |安全区

好一个。现在我们可以运行该文件了。

[玩转系统] PowerShell 执行策略:解除阻止文件 |安全区

取消阻止多个文件

最后但并非最不重要的一点是,我想向您展示一段执行批量操作的代码。运行以下代码以解锁下载文件夹中的多个 ps1 文件:

$ps1files = Get-ChildItem $home\downloads\*.ps1

foreach ($i in $ps1files) {

    Unblock-File -Path $i.FullName -Verbose
}

[玩转系统] PowerShell 执行策略:解除阻止文件 |安全区

今天就这样。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯