Files
windows_exporter/docs/runbooks/windowslicensenotgenuine.md
T
Jan-Otto Kröpke d819362150 mixin: add alerts for the opt-in collectors
Every optional collector of the mixin now has alerts, generated only with
that collector enabled in _config.collectors: clock source, disk drive
status, page file usage, license status, scheduled task results, pending
updates, Hyper-V WMI and replication health, failover cluster nodes,
resources, groups and shared volumes, Storage Spaces pool and virtual disk
health, DHCP scope exhaustion and DNS zone transfer failures. The alerts
of the pagefile, diskdrive and license collectors join the memory, disk
and system groups; the other collectors get a group of their own.

New knobs: taskSelector, sharedVolumeSelector, pagefileUsageThreshold,
dhcpScopeFreeWarningThreshold, dhcpScopeFreeCriticalThreshold and
updatePendingDuration. The test configuration enables every optional
collector and tests/optional.test.yaml covers the new alerts.

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-17 02:28:35 +00:00

1.7 KiB

title
title
WindowsLicenseNotGenuine

Meaning

Windows reports a license status other than genuine for one hour. The alert carries the status in its state label and needs the license collector. The status comes from the Software Licensing service and changes when an activation expires, a KMS host is unreachable for more than the grace period, the hardware changed, or the key was blocked. offline means the genuine validation could not reach Microsoft; on hosts without internet access that is the permanent state, so turn the alert off there with alerts+: { WindowsLicenseNotGenuine: false } or scope it with the exporter selector.

Impact

An unlicensed Windows shows activation notices, may limit personalization and, on some editions, restarts on a schedule. A Windows Server that leaves its activation grace period is out of compliance.

Diagnosis

  1. The state label of the alert names the status; windows_license_status shows all states of the host.

  2. On the host, read the license details:

    slmgr.vbs /dlv
    slmgr.vbs /xpr
    Get-CimInstance SoftwareLicensingProduct -Filter "PartialProductKey IS NOT NULL" | Select-Object Name, LicenseStatus, GracePeriodRemaining
    
  3. For KMS clients, check that the KMS host resolves through the _vlmcs._tcp DNS record and answers on TCP port 1688. For Active Directory based activation, check the activation object in the forest. For MAK or retail keys, check whether the activation count is exhausted.

Mitigation

Restore reachability to the KMS host or the activation object, then run slmgr.vbs /ato. Install the correct key with slmgr.vbs /ipk <key> if the key was wrong, or reactivate after a hardware change. Confirm the status returns to genuine.