vmix.nix/lib/images/windows/win10/images.nix
Git Sagar f33b8e7ce3 WIP: add Windows Update template with online COM API updates
Add essentials.windowsUpdate template that boots Audit Mode, uses the
Windows Update COM API to search/download/install all available updates
(cumulative, .NET, Defender), handles multi-round reboots with Audit
Mode preservation, and compacts the image afterward.

Known issues being worked:
- Audit Mode preservation after update reboot needs verification
- Install takes ~60-90 min with 4GB RAM on slow machines

See wip/win10-update.session.md for full context and TODOs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-09 10:31:08 +05:30

48 lines
1.5 KiB
Nix

# Pre-built Win10 LTSC 2021 images from upstream ISO
# Pipeline: makeImage (Audit Mode) → essentials → apps → registry → generalize
{ pkgs, lib, system, windows, upstreamISOs, ... }:
with windows;
rec {
ltsc = rec {
upstream = makeImage {
name = "win10-ltsc-2021";
upstreamISO = upstreamISOs.win10-ltsc-2021;
productKey = "M7XTQ-FN8P6-TTKYV-9D4CC-J462D";
};
# Apply all available Windows Updates (cumulative, .NET, Defender)
updated = customizeImage upstream (templates.essentials.windowsUpdate {});
basic = customizeImageFold updated (with templates; [
essentials.virtioTools
essentials.removeIE
essentials.removeWMP
essentials.removeEdge
essentials.vcppRuntimes
essentials.bestPerformance
reg.hardened
apps.edgeWebview
apps.thorium
]);
withApps = customizeImageFold basic (with templates; [
apps.sandboxie
apps.sevenZip
apps.vlc
apps.imageGlass
apps.office
]);
withAMDGPU = customizeImage basic templates.essentials.amdGpuDrivers;
};
laptopUpstream = makeImage {
name = "win10-ltsc-2021-laptop";
upstreamISO = upstreamISOs.win10-ltsc-2021;
productKey = "M7XTQ-FN8P6-TTKYV-9D4CC-J462D";
useAHCI = true;
};
laptopUpdated = customizeImage laptopUpstream (templates.essentials.windowsUpdate {});
laptopSlim = customizeImageFold laptopUpdated templates.bundles.laptopSlim;
laptop = customizeImageFold laptopUpdated templates.bundles.laptop;
}