Skip to content

Installation

Prerequisites

Deployment server (Windows)

Component Minimum version Role
Windows Server 2019/2022 or Windows 10/11 Hosts the API and file shares
PowerShell 5.1 or 7+ Scripting engine
Windows ADK 10.1.26100 (2024) DISM, MakeWinPEMedia tools
WinPE Add-on for the ADK Same version as ADK Base WinPE files
Pode module 2.x REST API server
Docker Desktop (optional) 24+ Web interface (Linux container)

Linux / Docker machine (web interface)

Component Minimum version
Docker Engine 24+
Docker Compose 2.x

Network shares

The following shares must be reachable from every deployed machine, including WinPE:

\\SERVER\Images       → .wim files
\\SERVER\Deploy       → sequences, profiles, catalogue, runtime scripts
\\SERVER\Drivers      → drivers, organized by model
\\SERVER\Software     → installers (.msi, .exe, .msp)
\\SERVER\Scripts      → post-deployment PowerShell scripts
\\SERVER\Logs         → deployment logs

Installing the Windows components

1. Windows ADK and the WinPE Add-on

Download both packages from Microsoft:

https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install

Install in this order:

  1. Windows ADK (adksetup.exe) — select only "Deployment Tools". Default path: C:\Program Files (x86)\Windows Kits\10\...
  2. WinPE Add-on (adkwinpesetup.exe) — same version as the ADK above.

2. Pode module

Install-Module Pode -Scope CurrentUser -Force

3. Deploy PSWinDeploy itself

Import-Module .\PSWinDeploy.psd1 -Force
pwsh -File .\Initialize-PSWinDeploy.ps1

Initialize-PSWinDeploy.ps1 runs an interactive console menu to configure shares, the vault, and build the initial WinPE image.

Installing the web interface (Linux / Docker)

cd PSWinDeploy/Web
cp .env.example .env

Edit .env:

VITE_API_URL=http://192.168.1.10:8080

Replace 192.168.1.10 with the IP or DNS name of the Windows server hosting the API.

docker-compose up -d
docker-compose ps
docker-compose logs -f pswindeploy-web

The interface is then reachable at http://DOCKER-HOST-IP:3000.

Starting the API as a Windows service

pwsh -File .\API\Deploy-API.ps1 -Port 8080

For production, run it as a proper Windows service using NSSM:

nssm install PSWinDeployAPI `
    "C:\Program Files\PowerShell\7\pwsh.exe" `
    "-NonInteractive -File C:\Deploy\API\Deploy-API.ps1 -Port 8080"
nssm set PSWinDeployAPI AppDirectory C:\Deploy
nssm start PSWinDeployAPI

HTTPS is also supported directly by the API script:

pwsh -File .\API\Deploy-API.ps1 -Port 8443 -Https `
    -CertPath 'C:\Certs\pswindeploy.pfx' -CertPassword 'CertPassword'