Automation repository responsible for generating and maintaining dynamic download manifests and external resource metadata for Foundry.
All catalog generators now produce XML-only outputs (no more JSON). Unified catalogs are generated by Build-UnifiedDriverPackCatalog.ps1 after update scripts complete.
- Helpers Module:
Helpers/FoundryHelpers.psm1- Common functions shared across all scripts - Unified Schema:
Schemas/UnifiedDriverPackCatalog.xsd- XSD schema for the unified catalog
After update scripts (Dell, HP, Lenovo, Surface) complete successfully, run the unified script to generate both consolidated catalogs:
- Script:
Scripts/Build-UnifiedDriverPackCatalog.ps1 - Outputs:
Cache/DriverPack/DriverPack_Unified.xml- Unified DriverPack catalogCache/WinPE/WinPE_Unified.xml- Unified WinPE catalog
- Schema:
Schemas/UnifiedDriverPackCatalog.xsd
These unified catalogs normalize all manufacturer-specific formats into consumable XML files for Foundry, separated by category (DriverPack vs WinPE).
Run manually:
pwsh -NoProfile -File ./Scripts/Build-UnifiedDriverPackCatalog.ps1In GitHub Actions, run-scripts-daily.yml executes all Update-*.ps1 scripts first and runs Build-UnifiedDriverPackCatalog.ps1 only after those jobs succeed.
This repository includes a PowerShell generator that retrieves Windows 11 products.cab metadata from official Microsoft-hosted sources, extracts products.xml, and writes deterministic ESD cache outputs.
- Script:
Scripts/Update-OSCatalog.ps1 - Schema:
Schemas/OperatingSystem.schema.json - Outputs:
- Generated source metadata:
Cache/OS/Microsoft/*.xml Cache/OS/OperatingSystem.xmlCache/OS/README.md
- Generated source metadata:
Run:
pwsh -NoProfile -File ./Scripts/Update-OSCatalog.ps1The script targets Windows 11 24H2, 25H2, and 26H2, as defined in Config/Windows11Releases.psd1. It uses a Microsoft-hosted products.cab link for 24H2, retains the checked-in Microsoft source snapshots for 25H2 (ArchiveOnly), and resolves the current 26H2 metadata through Windows Update. The dynamic endpoint advances when Microsoft publishes a new release, so it must not remain assigned to an older release. Downloaded media must match the configured build before publication; a failed download does not silently fall back to archived metadata.
Source snapshots retain 12 calendar months of history, with at least the newest snapshot kept for each targeted release. Snapshots for releases removed from the configuration are deleted during a successful refresh. Catalog availability follows Foundry's supported release list.
Generated source files use the naming convention Win<major>_<releaseId>_<build>_<mediaDate>.xml, for example Win11_24H2_26100.4349_20250607.xml.
This repository also includes a PowerShell generator that pulls Dell Driver Pack Catalog metadata from a CAB, extracts DriverPackCatalog.xml, and writes split outputs for DriverPack and WinPE catalogs.
- Script:
Scripts/Update-DellCatalog.ps1 - Schema:
Schemas/DellCatalog.schema.json - Outputs:
Cache/DriverPack/Dell/DriverPack_Dell.xmlCache/DriverPack/Dell/README.mdCache/WinPE/Dell/WinPE_Dell.xmlCache/WinPE/Dell/README.mdCache/DriverPack/DriverPack_Unified.xml(generated byBuild-UnifiedDriverPackCatalog.ps1)Cache/WinPE/WinPE_Unified.xml(generated byBuild-UnifiedDriverPackCatalog.ps1)
Run:
pwsh -NoProfile -File ./Scripts/Update-DellCatalog.ps1This repository includes a PowerShell generator that pulls HP DriverPack metadata from HPClientDriverPackCatalog.cab and WinPE pack metadata from HP's WinPE page.
- Script:
Scripts/Update-HPCatalog.ps1 - Schema:
Schemas/HPCatalog.schema.json - Outputs:
Cache/DriverPack/HP/DriverPack_HP.xmlCache/DriverPack/HP/README.mdCache/WinPE/HP/WinPE_HP.xmlCache/WinPE/HP/README.mdCache/DriverPack/DriverPack_Unified.xml(generated byBuild-UnifiedDriverPackCatalog.ps1)Cache/WinPE/WinPE_Unified.xml(generated byBuild-UnifiedDriverPackCatalog.ps1)
Run:
pwsh -NoProfile -File ./Scripts/Update-HPCatalog.ps1This repository includes a PowerShell generator that builds Surface DriverPack metadata from Microsoft's Surface support article.
- Script:
Scripts/Update-SurfaceCatalog.ps1 - Schema:
Schemas/SurfaceCatalog.schema.json - Outputs:
Cache/DriverPack/Surface/DriverPack_Surface.xmlCache/DriverPack/Surface/README.mdCache/DriverPack/DriverPack_Unified.xml(generated byBuild-UnifiedDriverPackCatalog.ps1)
Run:
pwsh -NoProfile -File ./Scripts/Update-SurfaceCatalog.ps1This repository includes a PowerShell generator that builds Lenovo DriverPack metadata from Lenovo's catalogv2.xml.
- Script:
Scripts/Update-LenovoCatalog.ps1 - Schema:
Schemas/LenovoCatalog.schema.json - Outputs:
Cache/DriverPack/Lenovo/DriverPack_Lenovo.xmlCache/DriverPack/Lenovo/README.mdCache/DriverPack/DriverPack_Unified.xml(generated byBuild-UnifiedDriverPackCatalog.ps1)
Run:
pwsh -NoProfile -File ./Scripts/Update-LenovoCatalog.ps1