You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Chocolatey安装软件出现Checksum error,求修改对应PowerShell脚本

Chocolatey批量安装脚本修改方案(解决部分软件Checksum错误)

修改逻辑

  • 新增专门的忽略校验和包名单,仅对nasm、pestudio这类存在哈希校验不匹配问题的软件追加--ignore-checksums参数,其余软件保持正常校验,避免无差别忽略带来的安全风险
  • 原有功能完全保留,仅调整安装命令的判断逻辑

修改后完整脚本

# Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass  (运行脚本前请在管理员权限终端执行该命令)

# Step 1) 必要时安装Chocolatey
if (-not (Test-Path -Path "$env:ProgramData\Chocolatey\choco.exe" -PathType Leaf)) 
{
    Set-ExecutionPolicy Bypass -Scope Process -Force;
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
    iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
}

# Step 2) 定义可安装的软件包列表
$Packages = 'googlechrome',
            'firefox',
            'codeblocks',
            'windbg',
            'nasm',
            'explorersuite',
            'pestudio',
            'vscode',
            'sysinternals',
            'python',
            'ccleaner',
            'anaconda3',
            'wireshark',
            'sublimetext3',  
            'google earth',
            'notepadplusplus',
            'iTunes'

# 定义需要忽略校验和的问题包列表
$ignoreChecksumPackages = @('nasm', 'pestudio')

# Step 3) 定义菜单展示函数
function Show-Menu
 {
    Clear-Host
    Write-Host "**********************************************"
    Write-Host "软件列表"
    for ($i = 0; $i -lt $Packages.Count; $i++) 
    {
        Write-Host ('{0,10}. {1}' -f ($i + 1), $Packages[$i])
    }
    Write-Host " q. 退出脚本"
    Write-Host "*************************************************"
    Write-Host
}

# Step 4) 主循环
while ($true) 
{
    Show-Menu
    $UserInput = Read-Host "输入要安装的软件对应的编号"
    if ($UserInput -eq 'q') { break }
    if ([int]::TryParse($UserInput,[ref]$null) -and 1..$Packages.Count -contains [int]$UserInput) 
    {
        $packageIndex = [int]$UserInput - 1
        $selectedPackage = $Packages[$packageIndex]
        Write-Host "正在安装 $selectedPackage"
        # 判断是否需要忽略校验和
        if ($ignoreChecksumPackages -contains $selectedPackage) {
            choco install $selectedPackage -y --ignore-checksums
        } else {
            choco install $selectedPackage -y
        }
    }
    else 
    {
        $availableOptions = 1..$Packages.Count -join ','
        Write-Host "选择错误,请选择 $availableOptions 范围内的编号,或输入q退出" -ForegroundColor Red
    }
     $null = Read-Host "按回车键继续"
}

补充说明

如果后续遇到其他软件也出现Checksum错误,直接把对应包名添加到$ignoreChecksumPackages数组里即可生效。

内容的提问来源于stack exchange,提问作者Shravan Meghavath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:09:03