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:
- Windows ADK (
adksetup.exe) — select only "Deployment Tools". Default path:C:\Program Files (x86)\Windows Kits\10\... - 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'