Software Protection Platform

SPP, the sppsvc service, and the licensing token cache

The Software Protection Platform (SPP) is the licensing subsystem of modern Windows. It owns the activation state of the operating system and of volume editions of Office, exposes the licensing API used by slmgr.vbs and ospp.vbs, and stores its state in a binary token cache on disk at %windir%\System32\spp\store.

Every activation method documented in this reference — KMS, MAK, AD-BA, Token-Based, digital licence, retail, and OEM — converges on SPP. From the operating system's perspective there is only ever one source of truth for licence state: the SPP token cache and its in-memory representation in the sppsvc process.

See also: slmgr Command Reference, OSPP Command Reference, Activation Error Codes.

History

SPP was introduced with Windows Vista in 2007, replacing the Windows Product Activation(WPA) mechanism used by Windows XP and the validation components of WGA. Subsequent releases extended SPP to cover digital licences (Windows 10), subscription-based Windows editions (Subscription Activation in Windows 10 Enterprise E3/E5), and Office volume activation (Office 2010 onward). The on-disk format of the token cache has changed across releases; current Windows stores tokens in the %windir%\System32\spp\store\2.0 subdirectory.

Technical details

SPP exposes a documented WMI provider — SoftwareLicensingService for service-level operations and SoftwareLicensingProduct for individual products — under the root\CIMV2 namespace. The provider underpins both slmgr.vbs and ospp.vbs, and can also be queried directly through PowerShell with Get-CimInstance -ClassName SoftwareLicensingProduct.

sppsvc service

The Software Protection service (sppsvc.exe) is the Windows service that implements SPP. It is configured to start Automatic (Delayed Start) and runs under NT SERVICE\sppsvc. The service must be running for any activation operation to succeed; if it is disabled the system reports activation failures and eventually enters a Notification state. Service-related events are written to Applications and Services Logs › Microsoft › Windows › Software Licensing Service.

Token cache

SPP stores its licensing state in the token cache, located at %windir%\System32\spp\store\2.0\. The primary file is tokens.dat; supporting files include cache.dat and data.dat. The cache is opaque (binary) and is not intended to be edited directly. Microsoft documents a supported re-initialization procedure: stop sppsvc, take a backup of the store directory, delete its contents, restart sppsvc, and run slmgr.vbs /rilc to re-install the system licence files. This procedure is used when troubleshooting a corrupted token cache.

WMI providers

# Service-level state
Get-CimInstance -ClassName SoftwareLicensingService |
  Select-Object Version, KeyManagementServiceProductKeyID

# Per-product licence detail
Get-CimInstance -ClassName SoftwareLicensingProduct |
  Where-Object { $_.PartialProductKey } |
  Select-Object Name, ApplicationID, LicenseStatus, GracePeriodRemaining

Common issues

  • sppsvc disabled by Group Policy. Activation fails immediately; sc qc sppsvc confirms the configured start type.
  • Corrupted tokens.dat. Symptoms include 0xC004D401 or 0x80070005 on any slmgr.vbs command; resolved by the re-initialization procedure documented by Microsoft.
  • Disk full on system drive. SPP cannot persist updated tokens and /ato fails silently; ensure adequate free space on %SystemDrive%.
  • Time skew. SPP rejects activation responses when the system clock differs significantly from the activation source; domain time synchronization is mandatory.

References

  1. Volume Activation Management Tool (VAMT)https://learn.microsoft.com/en-us/windows/deployment/volume-activation/volume-activation-management-tool
  2. Troubleshoot Software Protection errorshttps://learn.microsoft.com/en-us/troubleshoot/windows-server/deployment/troubleshoot-volume-activation-error-codes
  3. Slmgr.vbs options for volume activationhttps://learn.microsoft.com/en-us/windows-server/get-started/activation-slmgr-vbs-options
  4. Plan for volume activationhttps://learn.microsoft.com/en-us/windows/deployment/volume-activation/plan-for-volume-activation-client