Showing results for 
Search instead for 
Did you mean: 

How to streamline your Windows Deployment by using an Provisioning Package (PPKG) and Imaging Tools: "Don't touch me!"

Rising Star III
Rising Star III

Hi Community Folks

In the light of the upcoming release of Provisioning Packages for Windows (see the last IT Hours here), I took a spin on several tools again to make use of the PPKG within the Imaging process of Windows to move towards a Zero Touch Installation (ZTI), or at least a very Light Touch Installation (LTI) of Windows 10/11 (whatever you need).

Get your PPKG this way:

Screen Recording 2024-01-10 at 14.37.51.gif


I looked again at the following tools:

  1. OSDCloud
  2. OSDBuilder
  3. NTLite ($)
  4. Dell Image Assist
  5. Microsoft Deployment Toolkit (MDT)
  6. Windows Image Maker

In this table I made a quick overview and comparison for you guys:

Screenshot 2024-01-10 at 13.33.32.png

The only tools which cater for the 'native' consumption of a PPKG so far are OSDCloud, NTLite and Windows Image Maker. In all other cases you need to employ PowerShell Scripts during the deployment to get them installed post-setup during the OOBE-phase. 

My personal favourite is OSDCloud as it's really easy to set up, lightweight, and very versatile.
It also comes with the injection of drivers for all major vendors like Dell, Lenovo, HP and other for WinPE so that your PreBoot-Environment (for imaging) is capable of having a network connection. 

OSDCloud is the only solution here which allows you to work with a Thin Image - which means that you don't carry the Windows Image (WIM) on your USB/ISO for the installation, instead it's just a lightweight PE-Environment and the Windows Image is downloaded during the process. 
If you want to, you can add a WIM-file and make it a Thick Image. More details here

How to integrate the Provisioning Package?
It's very straight forward. As outlined here, you need to place the PPKG into the respective folders.



#Content will be on the ISO or USB Boot Partition
#Ideal for Virtual Machine testing

#Content will be on the USB Drive
#Ideal for Physical Machine testing



During the deployment you can observe how it's picked up and deployed. SCR-20240103-pvfr.png

Another pretty cool feature is the option to configure the deployment via an URL for flexibility. 
What does that mean? You can edit the PE-Image in a way that the startup configuration will be picked up from a public URL with a file that carries your parameters.
The advantage here is that you can modify the startup behaviour without re-generating the images over and over. 
How it works is described here.
I just use the -ZTI parameter then so that I don't have to touch the installation until the first login appears. 

Once the deployment is done, you can login using a JumpCloud-Account via Self-Service Account Provisioning or you start assigning users via the Admin Console. 

Screenshot 2024-01-10 at 12.57.15.png


NTLite is great when you want to get a lean and sanitised (de-bloated) Windows Image as it has tons of options to remove/modify components, features and services.
You're also able to add updates and feature packages or drivers. 
As you can see in the screenshots below, you have options to control the OOBE phase (Post Setup) as well as configuring the Unattended-File. Therefore you can either add your initial user and some configs within the PPKG or within the Unattended-File - that's really up to you. 
Screenshot 2024-01-10 at 14.06.29.png

Screenshot 2024-01-10 at 14.09.06.png

How to add the Provisioning Package?
I opted here for the option to download another script which then downloads the PPKG from S3 and applies it post setup. 



# Define the presigned URL of the .ppkg file
$ppkgUrl = "https://YOUR_CUSTOM_URL/jumpcloud_ppkg.ppkg"

# Define the local path to save the .ppkg file
$localPpkgPath = "C:\Windows\Temp\JumpCloud.ppkg"

# Download the .ppkg file
Invoke-WebRequest -Uri $ppkgUrl -OutFile $localPpkgPath

# Apply the PPKG
Install-ProvisioningPackage -Path $localPpkgPath -QuietInstall -ForceInstall -Verbose
Write-Host "Installation successful."

# Optionally, remove the downloaded file
Remove-Item -Path $localPpkgPath



You can add the PPKG directly via NTLite and apply it via the Command Line by using "Install-ProvisioningPackage". (to be tested)

How about the others like Dell Image Assist, MDT etc.?
Dell Image Assist and MDT need to rely on scripts as well and Windows Image Maker can process a PPKG directly when placed in the correct folder (similar to OSDCloud)

Happy Imaging

You Might Like

New to the site? Take a look at these additional resources:

Community created scripts:

Our new Radical Admin blog:

Keep up with Product News:

Read our community guidelines

Ready to join us? You can register here.