Microsoft Defender for Cloud · Compute
System updates should be installed on your machines
Written and reviewed by Emnode · Last reviewed
What does the recommendation "System updates should be installed on your machines" check?
Flags Azure VMs and Azure Arc-enabled servers that Azure Update Manager reports as missing one or more system, security or critical OS updates at the last periodic assessment. It evaluates the machine's installed patch level against the catalogue for its OS; it does not patch application binaries running inside containers, third-party software outside the OS package manager, or machines that have no assessment data because periodic assessment was never enabled.
Why does "System updates should be installed on your machines" matter?
An unpatched OS is the most reliably exploited foothold in any estate: published CVEs come with working exploit code, and automated scanners reach internet-facing hosts within hours of a fix shipping. One missing kernel or remote-service patch can hand an attacker code execution, then lateral movement across the subscription. The business cost is not just the breach but the audit finding, because most frameworks treat timely patching as a baseline control.
How do I fix "System updates should be installed on your machines"?
- Enable periodic assessment so the recommendation has fresh data: set the machine's update assessmentMode to 'AutomaticByPlatform', which makes Azure Update Manager re-evaluate missing updates every 24 hours.
- Remediate the backlog by selecting the affected machines in the recommendation and using the 'Fix' action for a one-time install of missing updates through Azure Update Manager, or run an on-demand update deployment from the Update Manager portal.
- Stop the drift recurring: configure scheduled patching (a maintenance configuration) so updates install on a recurring window, and enforce periodic assessment at scale with the 'Configure periodic checking for missing system updates' Azure Policy plus a remediation task across existing VMs.
Remediation script · bash
# Bring machines into Azure Update Manager: switch on periodic assessment
# and platform-orchestrated patching, then deploy the audit agent.
for vm in $(az vm list -g rg-workloads --query "[].name" -o tsv); do
az vm update -g rg-workloads -n "$vm" \
--set osProfile.windowsConfiguration.patchSettings.assessmentMode=AutomaticByPlatform \
--set osProfile.windowsConfiguration.patchSettings.patchMode=AutomaticByPlatform
# Guest Configuration extension requires a system-assigned identity.
az vm identity assign -g rg-workloads -n "$vm"
az vm extension set -g rg-workloads --vm-name "$vm" \
--name AzurePolicyforWindows \
--publisher Microsoft.GuestConfiguration
echo "$vm: periodic assessment on, auto-patch on, config extension deployed"
done
# Ratchet it shut: assign the built-in policy that enables periodic
# assessment on every machine in the subscription.
az policy assignment create \
--name enable-periodic-assessment \
--policy 59efceea-0c96-497e-a4a1-4eb2290dac15 \
--scope "/subscriptions/00000000-0000-0000-0000-000000000000" \
--location uksouth --mi-system-assigned Full walkthrough (console steps, edge cases and verification) in the lesson Keep Azure machines patched.
Is "System updates should be installed on your machines" a false positive?
A machine deliberately pinned to a validated patch level (for example a regulated appliance or a vendor-supported image where the supplier controls the update cadence) will keep flagging even though that is the correct posture. Exempt those specific resources in Defender for Cloud rather than disabling assessment, so the rest of the fleet stays covered and the exception is documented.
More Compute controls
- Endpoint protection health issues on machines should be resolved
- Endpoint protection should be installed on machines
- Guest Configuration extension should be installed on machines
- Internet-facing virtual machines should be protected with network security groups
- Machines should have a vulnerability assessment solution
- Management ports of virtual machines should be protected with just-in-time network access control
- Management ports should be closed on your virtual machines
- Virtual machines should encrypt temp disks, caches, and data flows between Compute and Storage resources