Scope: small fleet, no WSUS/SCCM. One-way sneakernet transfer — only a short text manifest ever leaves the isolated network; all update binaries travel inbound only.
Run Offline-Audit.ps1 as Administrator. It produces
AuditReport_<hostname>_<date>.txt — a short, plain-text summary of:
- OS build number
- Installed cumulative/quality updates (
Get-HotFix) - Defender signature/engine/platform versions
- Installed .NET runtimes/SDKs
- Installed PowerShell 7.x version
Sneakernet that .txt file to the connected machine. Review it before/after transfer — it's small enough to read in full.
Compare the report against current versions and pull whatever's missing.
| Item | Where to get it | Cadence |
|---|---|---|
| OS cumulative/quality update | Microsoft Update Catalog — search the KB for your build (check Windows release health for the current month's KB). Grab any prerequisite Servicing Stack Update (SSU) too if flagged. | Monthly, Patch Tuesday |
| Defender Security Intelligence (signatures) | Defender update page — full package (mpam-fe.exe) for the right architecture |
Daily/every few days — do not wait for the monthly cycle |
| Windows Security platform update | Microsoft Update Catalog — search "Microsoft Defender Antivirus platform update" | Monthly, alongside cumulative |
| .NET runtime/SDK security update | .NET 8 downloads or Update Catalog — match exact version from the audit report | Monthly |
| PowerShell 7.x | PowerShell GitHub releases — MSI for your architecture | As released (irregular) |
| Malicious Software Removal Tool (MSRT, KB890830) | Download Center, x64 / x86 — this link always serves the current month's build, no need to search the Catalog | Monthly, 2nd Tuesday |
Before moving anything back across the gap, verify it's genuinely from Microsoft:
Get-AuthenticodeSignature <file> | Select-Object Status, SignerCertificateStatus should read Valid. Also scan the transfer media itself for malware
— that's the main injection risk in this workflow.
| Item | Install command |
|---|---|
| Cumulative/SSU update | wusa.exe update.msu or DISM /Online /Add-Package /PackagePath:update.msu, then reboot |
| Defender signatures | Run mpam-fe.exe directly (admin rights) — applies immediately, no switches needed |
| Platform update | Same as cumulative update |
| .NET runtime/SDK | dotnet-runtime-8.x.x-win-x64.exe /install /quiet /norestart (or matching MSI) |
| PowerShell 7.x | msiexec /i PowerShell-7.x.x-win-x64.msi /quiet /norestart |
| MSRT | MRT.exe /F:Y /Q (forces a full scan and auto-cleans, no UI). MSRT has no installer — it's a standalone scanner you re-run each month, not something that stays "installed." It writes its own log to %WINDIR%\debug\mrt.log, which the audit script tails. |
Re-run Offline-Audit.ps1. Confirm the new KB/version numbers show up.
This report becomes next cycle's baseline.
Drivers are hardware-specific, so this is a different workflow from the items above — no single package covers the fleet, and there's no offline "scan" without either an internet-connected DCU or a prebuilt catalog.
Why not Dell Command | Update's offline repository mode: DCU supports a fully offline repository workflow, but building one requires Dell TechDirect Portal access and Dell's repo-building tooling, and by most accounts (including Dell partners who've documented it) it's genuinely painful to set up — worth it if you're managing many Dell models at scale, overkill for a handful of machines. Manual, per-model downloads from Dell's public support site are simpler at this scale.
Audit (offline machine): Offline-Audit.ps1 now also captures:
- Manufacturer/model and Service Tag (
Win32_BIOS.SerialNumber) — needed to look up the right driver page - BIOS version
- Every installed driver not authored by Microsoft (inbox/generic drivers update via the normal cumulative update process and don't need separate handling — only third-party/OEM drivers do)
Fetch (connected machine):
- Go to dell.com/support and enter the Service Tag from the report — no TechDirect account needed for this, it's the public drivers page.
- Filter to categories present in your "Non-Microsoft Drivers" list (chipset, network, storage/RAID, video/graphics, audio).
- Compare the listed "current version" against what's in your audit report; download anything newer as its standalone installer (.exe) or driver package (.cab).
- Verify:
Get-AuthenticodeSignature <file> | Select Status— should readValidand show Dell as signer.
Install (offline machine):
- Most Dell driver installers are self-extracting EXEs. Try silent
install first:
DriverInstaller.exe /s(some use/quiet— check/?on the exe if/sdoesn't work). - If an installer won't run silently or you'd rather avoid its GUI
logic entirely, extract-only (
/s /e=<path>) and stage the INF directly:pnputil /add-driver <path>\*.inf /install. This works the same regardless of vendor packaging. - Reboot if the driver touches a device in active use (storage, network, chipset).
BIOS/firmware — handle separately, more carefully: Dell BIOS updates
are also on the support/Service-Tag page but carry real risk (a
power-loss mid-flash can brick the board). Only do these on AC power
(laptops) or with confirmed stable power (desktops), and don't bundle
them into the same pass as routine driver updates. Track current version
via Win32_BIOS.SMBIOSBIOSVersion in the audit report.
Cadence: Drivers don't follow Patch Tuesday — check quarterly, or sooner if a specific CVE affecting your hardware (chipset, NIC firmware) is announced.
Office LTSC 2024 installs via Click-to-Run (C2R), not the Windows Installer (MSI). This matters a lot for this workflow: C2R has its own update mechanism (Microsoft's Office CDN) that is completely separate from Windows Update, WSUS, and the Microsoft Update Catalog. Nothing above touches it, and there's no KB to hunt for — you version-pin a release channel and pull whatever the CDN currently serves for it.
The tool for this is the Office Deployment Tool (ODT) — a small (~3-4 MB), free, signed utility from Microsoft's Download Center. Get a fresh copy each cycle since ODT itself updates.
Audit (offline machine): Offline-Audit.ps1 now reads
HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration for
VersionToReport (build) and UpdateChannel (should read
PerpetualVL2024 for LTSC ProPlus 2024).
Fetch (connected machine):
-
Download the latest ODT from Microsoft's Download Center (search "Office Deployment Tool").
-
Create a config XML pinned to your channel:
<Configuration> <Add SourcePath="C:\OfficeLTSC2024" OfficeClientEdition="64" Channel="PerpetualVL2024"> <Product ID="ProPlus2024Volume"> <Language ID="en-us" /> </Product> </Add> <Updates Enabled="TRUE" /> </Configuration>
-
Run
setup.exe /download config.xml. This pulls the full current build for that channel intoSourcePath— there's no delta/patch file, so budget for several GB on your transfer media (noticeably bigger than everything else in this runbook).
Install (offline machine):
- Copy the ODT
setup.exe, the same config XML, and the downloaded source folder over. - Run
setup.exe /configure config.xml. If the source build is newer than what's installed, it updates in place; if it's the same, it's a no-op — safe to run every cycle without checking the audit report first, though comparingVersionToReportfirst saves you moving multi-GB files for nothing.
Verification note: unlike the earlier items, Get-AuthenticodeSignature
doesn't cleanly apply to C2R's compressed package format — ODT itself is
Microsoft-signed and validates its downloads against the CDN; that's the
integrity check here rather than checking the payload files directly.
Cadence: roughly monthly, tracking Patch Tuesday, sometimes with out-of-band releases for critical CVEs.
- If the fleet grows past a handful of machines or picks up more Dell models, revisit Dell Command | Update's offline repository mode (or ConfigMgr-integrated driver management) rather than doing this by hand.
- For OS/AV/.NET/PowerShell/MSRT, if the fleet grows, revisit WSUS Offline Update or a disconnected WSUS pair rather than doing this fully by hand.