Manage Learn to apply best practices and optimize your operations.

How to automate software installation for Windows VDI

Software installation can be a lengthy, tedious process. IT can automate software installation for Windows VDI with a tool called Chocolatey.

Chocolatey is an open-source package creator and manager for Windows. Chocolatey integrates into PowerShell, which means that IT can deploy software with the PowerShell command line or scripts.

When IT admins create a golden image for VDI, they can easily load in all software with PowerShell, which gives a consistent golden image. IT can also integrate Chocolatey into products that support PowerShell, such as Ivanti Automation, Microsoft System Center Configuration Manager, Ansible and Microsoft Intune. IT should always create the VDI golden image as an automated repeatable process, and Chocolatey is one of the best tools to help IT automate the software installation process for Windows virtual desktops. 

Chocolatey can also help IT distribute software not only to virtual desktops but also to a digital workspace. If IT creates a Chocolatey repository and make it available through the internet, which requires a web proxy, the IT admin can easily send the same software package with Intune to a modern workspace and to traditional virtual desktops. This provides one easy-to-manage software repository.

Chocolatey also comes with a community repository. This repository has all kinds of freeware such as Adobe PDF Reader, Flash and Java. IT can use the community packages without restrictions.

In this video, I demonstrate how to install and create a Chocolatey repository, create a package, publish a package, install your package and install a community package.

Install Chocolatey:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(''))

Install script for the repository:

Install community package:

Choco install <PACKAGENAME>

Install package automatic accept:

Choco install <PACKAGENAME> - y

Add API key to client:

Choco setapikey -s=” http://<SERVERNAME>/chocolatey”  -k=”<APIKEY>”

Create a new package:


Example install scripts:

Package new package:

Choco pack

Publish package:

Choco push <PACKAGENAME> -s http://<SERVERNAME>/chocolatey

Install package from own repository:

Choco install <PACKAGEMANE> -s http://<SERVERNAME>/chocolatey -y

View All Videos