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>
56 lines
1.7 KiB
Nix
56 lines
1.7 KiB
Nix
# Pre-built Win11 LTSC 2024 images from upstream ISO
|
|
# Pipeline: makeImage (Audit Mode) → essentials → apps → registry
|
|
{ pkgs, lib, system, windows, upstreamISOs, ... }:
|
|
with windows;
|
|
rec {
|
|
ltsc = rec {
|
|
upstream = makeImage {
|
|
name = "win11-ltsc-2024";
|
|
upstreamISO = upstreamISOs.win11-ltsc-2024;
|
|
productKey = "M7XTQ-FN8P6-TTKYV-9D4CC-J462D";
|
|
bypassRequirements = true;
|
|
windowsVersionForVirtioDrivers = "w11";
|
|
};
|
|
|
|
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
|
|
reg.disableUCPD
|
|
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 = "win11-ltsc-2024-laptop";
|
|
upstreamISO = upstreamISOs.win11-ltsc-2024;
|
|
productKey = "M7XTQ-FN8P6-TTKYV-9D4CC-J462D";
|
|
bypassRequirements = true;
|
|
useAHCI = true;
|
|
windowsVersionForVirtioDrivers = "w11";
|
|
};
|
|
|
|
laptopUpdated = customizeImage laptopUpstream (templates.essentials.windowsUpdate {});
|
|
|
|
laptopSlim = customizeImageFold laptopUpdated
|
|
(templates.bundles.laptopSlim ++ [ templates.reg.disableUCPD ]);
|
|
|
|
laptop = customizeImageFold laptopUpdated
|
|
(templates.bundles.laptop ++ [ templates.reg.disableUCPD ]);
|
|
}
|