Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能告诉我这些安装Chocolate的PowerShell脚本是否安全吗?_Powershell_Security_Chocolatey - Fatal编程技术网

有人能告诉我这些安装Chocolate的PowerShell脚本是否安全吗?

有人能告诉我这些安装Chocolate的PowerShell脚本是否安全吗?,powershell,security,chocolatey,Powershell,Security,Chocolatey,我需要安装巧克力,一个Windows软件包管理器。在他们的网站上,我发现这个powershell脚本必须执行才能安装它。但是,我不理解这个脚本 我需要知道的是这个脚本是否安全 Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 307

我需要安装巧克力,一个Windows软件包管理器。在他们的网站上,我发现这个powershell脚本必须执行才能安装它。但是,我不理解这个脚本

我需要知道的是这个脚本是否安全

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
让我怀疑的语句是
Set ExecutionPolicy Bypass-Scope Process-Force
[System.Net.ServicePointManager]::SecurityProtocol=[System.Net.ServicePointManager]::SecurityProtocol-bor 3072

要执行的远程powershell脚本为


如果有人能告诉我这些脚本是否安全,那就太好了…

让我们逐行看看发生了什么

Set-ExecutionPolicy Bypass -Scope Process -Force;
默认情况下,Powershell不运行脚本文件。这是为了防止意外执行脚本,也是一种安全措施。由于范围是针对流程的,因此它只影响当前会话,而不影响整个系统的更改。有关更多详细信息,请参阅

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; 
这里所做的是更改TLS设置。
-bor 3072
表示为TLS 1.2支持而记录的标志组合,以及特定标志

iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
最后一个脚本首先使用
WebClient
下载Powershell脚本文件,然后由
iex
执行

守则是否合理?好的,关于启用TLS 1.2的部分是,因为旧版本的TLS已被弃用,而旧的Powershell默认为这些版本。现代web服务器不允许这种连接,因此在不更改TLS版本的情况下,下载尝试将失败。执行策略设置也是如此,如果要运行脚本,则需要更宽松的执行策略


至于
install.ps1
,谁知道呢?如果你信任出版商,这是你的决定。

我投票决定结束这个问题,因为这里不涉及特别安全分析。