在 Windows 上使用 Chocolatey 创建安装脚本:完整指南

最后更新: 26/08/2025
作者: 艾萨克
  • Chocolatey 允许您自动且安全地安装、更新和卸载软件。
  • 软件包是经过审核的,许多都是[已批准],并且可以在安装之前审核脚本。
  • 连接器 PowerShell的 和 packages.config 您可以标准化部署和安排升级。
  • MGI 日志 全局确认有利于无人值守执行和可追溯性。

使用 Chocolatey 创建安装脚本的指南

如果你来自 Linux 或 macOS 听起来很熟悉从 终端, 但在 Windows 仍然有人用奇怪的眼光看待文字。 comandos现实情况是,当你寻求自动化、标准化和加速部署时, Chocolatey 成为你最好的盟友 创建安装脚本,无需单击“下一步、下一步、完成”。

在本实用指南中,您将学习如何使用 Chocolatey 创建安装脚本:它是什么,如何安全地安装它,关键命令,如何构建你的 PowerShell 脚本,如何使用 packages.config,安全指南,如何安排自动更新,以及一些 技巧 生产力,以便每个新团队都能在几分钟内做好准备。

什么是 Chocolatey 以及它为何能让你编写脚本更加轻松

Chocolatey 是一款受 apt、dnf 或 pacman 启发的 Windows 软件包管理器,拥有一个大型社区维护的仓库和官方工具。其方法:以一致、可重复的方式从命令行安装、更新和卸载软件,而无需图形安装程序中经常出现的额外垃圾软件。

Chocolatey 的公共目录远远超过几千个独特的软件包,由社区审核和验证。许多软件包不包含最终的二进制文件,而是从供应商官方网站下载的脚本,并使用适当的参数运行静默安装,以避免广告软件或不需要的组件。

自动化的巨大优势 你可以用一个简单的 脚本 (PowerShell 或 CMD)、定义全局确认选项、捕获日志并在新计算机上重现相同的环境或 虚拟机 在几分钟内

除了安装之外,Chocolatey 还允许您更新所有软件。 使用单个命令和计划在任务计划程序中更新,以忘记烦人的“有新版本可用”通知。

在 Windows 上使用 Chocolatey 自动安装

Chocolatey 的安全安装:命令和重要细节

如果以管理员身份运行 PowerShell,Chocolatey 安装会非常快。 (在开始菜单中找到它,右键单击,然后选择“以管理员身份运行”。)最好只针对进程会话调整执行策略,而不是在系统级别调整。

PowerShell 中的推荐命令(提升会话) 要配置现代 TLS 协议并以仅限于当前进程的方式运行安装程序:

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

还有一种传统 cmd 的变体 您会在许多教程中看到它;如果您使用它,请确保以管理员权限打开 cmd 以避免权限问题并确保您的 PATH 变量正确更新:

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

需要考虑的细节:如果您不以管理员身份运行,则范围将覆盖整个用户,并且您可能会在需要提升权限的安装中遇到错误。Chocolatey 会记录所有信息 C:\ProgramData\chocolatey\logs\chocolatey.log,这样您就可以完全追溯所发生的一切。

  如何在 Minecraft 中避免和管理 IP 封禁

关于 Set-ExecutionPolicy:最好使用 Bypass 和 Scope Process(如上所述)来避免触碰全局指令。一些较旧的教程要求 无限制 o 使用AllSigned; 如果您使用 使用AllSigned,您需要在每次运行时签署自己的脚本或确认有效签名。

安全性:数据包审核、[已批准] 和脚本验证

Chocolatey 采用手动和自动包装审核。 来自社区存储库。许多条目带有标签 [得到正式认可的],这表明它们已经通过了质量和安全控制;一些包裹可能还带有数字签名。

尽管如此,基本的良好做法:如果您担心安全问题(例如, 巧克力安装-dv 有关详细信息),请查看包页面,如果您管理关键环境,请考虑内部存储库或企业许可证。

为什么安装程序使用 chocolateyinstall.ps1? 剧本 安装.ps1下载 从官方网站上看,它是一个“引导程序”, 下载 Chocolatey nupkg 包并运行其 chocolateyinstall.ps1它们不匹配很正常:一个是启动器,另一个是包安装脚本。这种差异本身不是什么问题,而是 NuGet/Chocolatey 架构的问题。

真正的安全优势:避免使用垃圾软件、将下载集中到可验证的来源、自动化且无欺骗性点击、以及维护最新版本可减少攻击面和过时软件带来的风险。

脚本的基本命令:安装、搜索、列出、更新和卸载

安装套件 它很简单:

choco install nombre_paquete -y

-y 修饰符强制确认 这样你的脚本就无需等待交互了。如果你愿意,也可以全局启用它:

choco feature enable -n allowGlobalConfirmation

典型示例 您将在指南中看到:使用 巧克力安装Skype,CMDER与 choco 安装 cmder -y 或使用 VLC choco 安装 vlc -y您可以使用以下方式搜索包:

choco search <termino>

当你搜索时,你会看到带有变体的包: 例如, 7zip.安装 安装具有经典界面的应用程序,同时 7zip 它可以简单地是“无头”命令行版本。选择变体 。安装 无论何时您需要 GUI。

  如何在 Windows 11 中删除写字板后将其恢复

列出已安装的内容 帮助您快速审核您的设备:

choco list --local-only

检查过时的版本 它很简单:

choco outdated

更新特定或所有包 批量处理对于计划脚本来说非常方便:

choco upgrade <paquete> -y
choco upgrade all -y

卸载也很简单,并且如果适用的话,您还可以包含依赖项:

choco uninstall <paquete> -y --remove-dependencies

创建您的第一个 PowerShell 安装脚本(可重复使用的模板)

最实用的自动化方法是在 PowerShell 中创建脚本 它验证权限、配置会话的执行策略、安装 Chocolatey(如果缺失),然后在链中部署您最喜欢的应用程序。

示例模板 您可以根据自己的软件列表和内部政策进行调整:

# Comprobar privilegios de administrador
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { Write-Host 'Este script requiere privilegios de Administrador. Vuelve a ejecutarlo elevado.'; exit 1 }

# Política de ejecución solo para este proceso y TLS 1.2
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072

# Instalar Chocolatey si no existe
if (-not (Get-Command choco -ErrorAction SilentlyContinue)) { iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) }

# Confirmación global para evitar prompts
choco feature enable -n allowGlobalConfirmation

# Instalar aplicaciones (modifica a tu gusto)
choco install google-chrome-x64 -y; choco install visualstudiocode -y; choco install vscode-powershell -y; choco install docker-desktop -y; choco install 7zip.install -y; choco install vlc -y; choco install git -y

# Limpiezas opcionales (ejemplo: accesos directos del Escritorio)
# Get-ChildItem -Path "$env:Public\Desktop\*.lnk" -ErrorAction SilentlyContinue | Remove-Item -Force

# Mostrar resumen local
choco list --local-only

评议会:将“必备”包与“可选”包分成两个不同的块或脚本,这样您就可以拥有一个最小基础和一个用于特定配置文件(开发、设计、视频编辑等)的附加层。

如果您已经手动安装了版本,在运行脚本之前卸载它们以避免冲突,特别是在较旧的 Windows 安装上;全新安装的 Windows 10/11 通常可以提供更流畅的体验。

使用 packages.config 实现自动化:无需修改脚本即可批量安装

除了 PowerShell,Chocolatey 还允许您定义 packages.config (NuGet 风格)包含所需的软件包及其版本。这对于共享团队列表或 Git 控制的仓库非常有用。

最小 packages.config 示例 (将其保存在运行 choco 的同一文件夹中):

<?xml version='1.0'?>
<packages>
  <package id='google-chrome-x64' />
  <package id='visualstudiocode' />
  <package id='7zip.install' />
  <package id='vlc' />
  <package id='git' />
</packages>

安装所有定义的 在该文件中运行:

choco install packages.config -y

优点:软件列表的声明性维护、文件版本控制以及轻松审查审计设备的变更。

  修复:Windows 10 更新后蓝牙无法工作

使用任务计划程序安排自动更新

巧克力店

让您的软件保持最新状态且无需侵入通知就像编程一样简单。 执行的操作 choco全部升级 当您登录时或在特定时间。

逐步总结:打开“任务计划程序”,创建一个任务,选中“以最高权限运行”,选择触发器(例如,登录时),并在操作中将“程序或脚本”设置为 巧克力 并在“添加参数”中写入 升级全部-y.

如果您更喜欢通过脚本管理,您可以使用 PowerShell 创建任务 注册计划任务,在准备企业图像或大规模部署时很有用。

记住 Chocolatey 的日志 这将帮助您确认更新进展顺利: C:\ProgramData\chocolatey\logs\chocolatey.log.

实际使用示例:从零到就绪环境

办公自动化和多媒体的基础安装:浏览器、压缩器、视频播放器和 PDF 只需几秒钟即可通过单个复合命令。

choco install google-chrome-x64 7zip.install vlc sumatrapdf.install -y

轻量级开发环境:VS Code、Git 和 PowerShell 工具,首次使用后即可使用别名和扩展 引导.

choco install visualstudiocode vscode-powershell git -y

搜索和精选:如果您不确定确切名称,请尝试 巧克力搜索命令 o 巧克力搜索 Adob​​e 查看变体以及哪些是 [得到正式认可的].

choco search mpv
choco install mpv.install -y

更新和维护:一眼就能检查是否有任何内容已过时,然后使用夜间脚本中的单个命令直接更新所有内容。

choco outdated
choco upgrade all -y

拥有扎实的命令基础、良好的安全实践以及一两个精心设计的脚本有了它,您将能够在几分钟内部署设备,使其保持最新状态,避免使用垃圾软件,并完全跟踪已安装和更新的内容,所有这些都比传统安装程序流程更简洁,并且无需依赖手动点击。