Crear scripts de instalación con Chocolatey en Windows: guía completa

Última actualización: 26/08/2025
Autor: Isaac
  • Chocolatey permite instalar, actualizar y desinstalar software de forma automatizada y segura.
  • Los paquetes están moderados, muchos están [Approved], y es posible auditar scripts antes de instalarlos.
  • Con PowerShell y packages.config puedes estandarizar despliegues y programar upgrades.
  • Los logs y la confirmación global facilitan la ejecución desatendida y la trazabilidad.

Guía para crear scripts de instalación con Chocolatey

Si vienes de Linux o macOS te sonará familiar la idea de instalar software desde la terminal, pero en Windows todavía hay quien mira raro eso de escribir comandos. La realidad es que, cuando buscas automatizar, estandarizar y acelerar despliegues, Chocolatey se convierte en tu mejor aliado para crear scripts de instalación sin clics de “Siguiente, siguiente, finalizar”.

En esta guía práctica vas a aprender a crear scripts de instalación con Chocolatey: qué es, cómo instalarlo con seguridad, los comandos clave, cómo estructurar tus scripts de PowerShell, cómo usar packages.config, pautas de seguridad, cómo programar actualizaciones automáticas y algunos trucos de productividad para que cada nuevo equipo quede listo en minutos.

Qué es Chocolatey y por qué te facilita la vida al crear scripts

Chocolatey es un gestor de paquetes para Windows inspirado en apt, dnf o pacman, con un gran repositorio mantenido por la comunidad y herramientas oficiales. Su propuesta: instalar, actualizar y desinstalar software desde línea de comandos de forma consistente, repetible y sin basura adicional (crapware) que a menudo se cuela en instaladores gráficos.

El catálogo público de Chocolatey supera con creces varios miles de paquetes únicos, moderados y verificados por la comunidad. Muchos paquetes no contienen el binario final, sino scripts que descargan desde la web oficial del proveedor y ejecutan instalaciones silenciosas con los parámetros adecuados para evitar adware o componentes no deseados.

La gran ventaja para automatizar es que puedes encadenar instalaciones con un simple script (PowerShell o cmd), definir opciones globales de confirmación, capturar logs y reproducir el mismo entorno en nuevos equipos o máquinas virtuales en cuestión de minutos.

Además de instalación, Chocolatey te permite actualizar todo tu software con un solo comando y programar esa actualización en el Programador de tareas para olvidarte de los molestos avisos de “hay una nueva versión disponible”.

Automatización de instalaciones con Chocolatey en Windows

Instalación segura de Chocolatey: comandos y matices importantes

La instalación de Chocolatey es muy rápida si ejecutas PowerShell como Administrador (búscalo en el menú Inicio, clic derecho y “Ejecutar como administrador”). Conviene ajustar la política de ejecución solo para la sesión de proceso, no a nivel de sistema.

Comando recomendado en PowerShell (sesión elevada) para configurar protocolos TLS modernos y ejecutar el instalador de forma acotada al proceso actual:

[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'))

También existe una variante desde cmd tradicional que verás en muchos tutoriales; si la usas, asegúrate de abrir cmd con privilegios de administrador para evitar fallos de permiso y que se actualice bien la variable PATH:

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

Detalles a tener en cuenta: si no ejecutas como administrador, el alcance será de usuario y puedes encontrarte errores en instalaciones que requieren elevación. Chocolatey registra todo en C:\ProgramData\chocolatey\logs\chocolatey.log, así que tienes trazabilidad completa de lo que ocurre.

  El error "Tu PC/Gadget necesita ser reparado" en Home 10 windows

Sobre Set-ExecutionPolicy: es preferible usar Bypass con Scope Process (como arriba) para no tocar la directiva global. Algunos tutoriales antiguos piden Unrestricted o AllSigned; si usas AllSigned, deberás firmar tus propios scripts o confirmar firmas válidas en cada ejecución.

Seguridad: moderación de paquetes, [Approved] y verificación de scripts

Chocolatey aplica una moderación manual y automatizada de los paquetes del repositorio comunitario. Muchas entradas aparecen con la etiqueta [Approved], lo que indica que han superado controles de calidad y seguridad; algunos paquetes, además, pueden estar firmados digitalmente.

Aun así, buenas prácticas básicas: inspecciona el contenido antes de instalar si te preocupa la seguridad (por ejemplo con choco install <paquete> -dv para ver detalles), revisa la página del paquete y, si gestionas entornos críticos, considera repositorios internos o licencias empresariales.

¿Por qué el instalador usa chocolateyinstall.ps1? El script install.ps1 que descargas desde la web oficial es un “bootstrapper” que baja el paquete nupkg de Chocolatey y ejecuta su chocolateyinstall.ps1. Es normal que no coincidan: uno es el lanzador y el otro el script de instalación del paquete. Esa diferencia no es un problema, es la arquitectura de NuGet/Chocolatey trabajando.

Ventajas reales en seguridad: evitar crapware, centralizar descargas en orígenes verificables, automatizar sin clics engañosos y mantener versiones al día reduce la superficie de ataque y los riesgos por software obsoleto.

Comandos esenciales para tus scripts: instalar, buscar, listar, actualizar y desinstalar

Instalar un paquete es tan sencillo como:

choco install nombre_paquete -y

El modificador -y fuerza la confirmación para que tus scripts no queden esperando interacción. Si lo prefieres, puedes habilitarlo globalmente:

choco feature enable -n allowGlobalConfirmation

Ejemplos típicos que verás en guías: instalar Skype con choco install skype, CMDER con choco install cmder -y o VLC con choco install vlc -y. Puedes buscar paquetes con:

choco search <termino>

Cuando busques verás paquetes con variantes: por ejemplo, 7zip.install instala la aplicación con interfaz clásica, mientras 7zip a secas puede ser la versión “headless” de línea de comandos. Elige la variante .install cuando quieras la GUI.

  Samsung Galaxy S6/ Edge no puede conectarse a Windows 10[FIX]

Listar lo que tienes instalado te ayuda a auditar rápidamente tus equipos:

choco list --local-only

Comprobar versiones obsoletas es tan simple como:

choco outdated

Actualizar paquetes concretos o todos en lote es muy conveniente para scripts programados:

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

Desinstalar también es directo, y puedes incluir dependencias si corresponde:

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

Crear tu primer script de instalación en PowerShell (plantilla reutilizable)

La forma más práctica de automatizar es crear un script en PowerShell que valide permisos, configure la política de ejecución para la sesión, instale Chocolatey si falta y luego despliegue tus aplicaciones favoritas en cadena.

Plantilla de ejemplo que puedes adaptar a tu lista de software y políticas internas:

# 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

Consejo: separa paquetes “imprescindibles” de “opcionales” en dos bloques o scripts distintos, así puedes tener una base mínima y una capa adicional para perfiles específicos (desarrollo, diseño, edición de vídeo, etc.).

Si ya tenías versiones instaladas manualmente, desinstálalas antes de ejecutar tu script para evitar conflictos, especialmente en instalaciones antiguas de Windows; con instalaciones limpias de Windows 10/11 la experiencia suele ser más fluida.

Automatizar con packages.config: instalar en lote sin tocar el script

Además de PowerShell, Chocolatey permite definir un packages.config (al estilo NuGet) con los paquetes que quieres y sus versiones. Esto es útil para listas compartidas de equipos o repos controlados por Git.

Ejemplo de packages.config minimal (guárdalo en la misma carpeta desde la que ejecutarás 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>

Para instalar todo lo definido en ese archivo, ejecuta:

choco install packages.config -y

Ventajas: mantenimiento declarativo de la lista de software, control de versiones del archivo y facilidad para revisar cambios en equipos auditados.

  Las Mejores Alternativas a Flash Player

Programar actualizaciones automáticas con el Programador de tareas

chocolatery

Mantener el software al día sin avisos intrusivos es tan simple como programar una acción que ejecute choco upgrade all -y al iniciar sesión o a una hora concreta.

Paso a paso resumido: abre “Programador de tareas”, crea una tarea, marca “Ejecutar con los privilegios más altos”, elige el desencadenador (por ejemplo, Al iniciar la sesión) y en Acciones pon “Programa o script” como choco y en “Agregar argumentos” escribe upgrade all -y.

Si lo prefieres gestionado por script, puedes crear la tarea desde PowerShell con Register-ScheduledTask, útil cuando preparas imágenes corporativas o despliegues a escala.

Recuerda que el log de Chocolatey te servirá para confirmar que las actualizaciones han ido bien: C:\ProgramData\chocolatey\logs\chocolatey.log.

Ejemplos prácticos de uso: de cero a entorno listo

Instalación base para ofimática y multimedia: navegador, compresor, reproductor de vídeo y PDF en pocos segundos con un único comando compuesto.

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

Entorno de desarrollo ligero: VS Code, Git y herramientas de PowerShell, con alias y extensiones listos tras el primer arranque.

choco install visualstudiocode vscode-powershell git -y

Búsqueda y selección fina: si dudas del nombre exacto, prueba choco search cmder o choco search adobe para ver variantes y cuáles están [Approved].

choco search mpv
choco install mpv.install -y

Actualizaciones y mantenimiento: comprueba de un vistazo si algo está desactualizado y lánzate a actualizarlo todo con un solo comando en tus scripts nocturnos.

choco outdated
choco upgrade all -y

Con una base sólida de comandos, buenas prácticas de seguridad y uno o dos scripts bien diseñados, podrás desplegar equipos en minutos, mantenerlos siempre al día, evitar crapware y tener total trazabilidad de lo que se instala y actualiza, todo ello con un flujo más limpio que los instaladores tradicionales y sin depender de clics manuales.

Deja un comentario