gpt4 book ai didi

powershell - 运行 `Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass`是否安全

转载 作者:行者123 更新时间:2023-12-03 08:18:48 25 4
gpt4 key购买 nike

我从 https://www.powershellgallery.com/packages/ImportExcel/7.1.0 安装了这个模块在我们的 Windows Power shell 中:-

Install-Module -Name ImportExcel -RequiredVersion 7.1.0 

然后我运行这个命令,但我发现该脚本没有经过数字签名:-

PS C:\WINDOWS\system32> Import-Module ImportExcel
Import-Module : File C:\Program Files\WindowsPowerShell\Modules\ImportExcel\7.1.0\ImportExcel.psm1 cannot be loaded.
The file C:\Program Files\WindowsPowerShell\Modules\ImportExcel\7.1.0\ImportExcel.psm1 is not digitally signed. You
cannot run this script on the current system. For more information about running scripts and setting execution policy,
see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ Import-Module ImportExcel
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [Import-Module], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand

为了解决这个问题,我运行这个命令Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass..那么这安全吗?

最佳答案

tl;博士

# Save the current execution policy...
$currPolicy = Get-ExecutionPolicy
# ... and temporarily set the policy to 'Bypass' for this process.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force

# ASSUMING YOU TRUST MODULE ImportExcel:
# Execution of scripts in the context of importing the module is
# now permitted.
Install-Module -Name ImportExcel -RequiredVersion 7.1.0

# Restore the previous execution policy for this process.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy $currPolicy -Force

解释一下Santiago Squarzon对这个问题的有用评论:

PowerShell 的 execution policies通过控制是否以及在什么条件下允许执行脚本文件(.ps1)来防止潜在危害:受限 完全阻止执行,AllSigned 仅允许执行加密签名脚本,RemoteSigned 仅需要从网络下载的脚本待签名,Unrestricted 对执行不施加任何限制,但提示确认执行互联网下载脚本的意图,Bypass 不限制执行完全没有。

这意味着,当有效策略阻止执行给定脚本时,这并不意味着特定脚本实际上包含有害内容 - 策略从不检查这一点,他们纯粹按照正式标准行事。

当然,相反,任何给定的脚本都可能包含有害内容。

您似乎正在使用 ImportExcel module来自PowerShell Gallery ,开源 PowerShell 模块的官方存储库;画廊主题模块提交给security checks .

您已经安装此模块的事实表明您原则上信任它。 (当然,您可以通过 (Get-Module ImportExcel -ListAvailable).Path 报告的目录亲自检查相关脚本以及整个模块。)

导入它碰巧涉及运行脚本 (*.ps1),这并非全部 modules do (这样做用于模块内部帮助程序脚本或通过 ScriptsToProcess module-manifest 条目中指定的脚本对调用者的范围进行所需的修改)。

换句话说:

  • Import-Module 调用可能根本不涉及执行脚本,但它总是涉及将命令导入到 session 中,您绝对应该信任才能使用它们。

  • 因此,导入模块应该是一个全有或全无的信任提议,如果您确实信任它,则有效的执行策略不应妨碍导入它。

上面显示的代码通过有效地将其范围限定到感兴趣的模块导入,最大限度地降低了使进程级策略更加宽松的风险。


顺便说一句:这个问题甚至不会出现在执行策略不适用的类 Unix 平台(需要跨平台 PowerShell (Core) v6+ 版本)上。

关于powershell - 运行 `Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass`是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68504743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com