Overview
The Windows Time Service Policy configures device time zone settings and Windows Time Service (W32Time) / NTP settings via the MDM Policy CSP. It uses two CSP families:
TimeLanguageSettings — sets the device time zone
ADMX_W32Time — configures the Windows Time Service (NTP client/server, clock discipline, etc.)
ADMX-backed settings use SyncML chr format with XML-encoded payloads.
Reference: Microsoft Policy CSP — ADMX_W32Time
Supported Platform: Windows
Owners: Company-managed devices, BYOD
Minimum System Requirements
Requirements differ depending on which settings you configure:
Setting Group | Minimum OS Version |
Time Zone ( | Windows 10 version 1903 (10.0.18362) and later |
W32Time / NTP settings | Windows 10 2004/20H2/21H1 with KB5005101, or Windows 11 21H2 and later |
Policy Fields
1. Configure Time Zone
Property | Value |
Field name |
|
Type | String |
Description | Standard Windows time zone name applied to the device. Use names from |
Tip: Run Get-TimeZone -ListAvailable in PowerShell on any Windows device to see all valid time zone IDs.
2. Global Configuration Settings (w32TimePolicyConfig)
Configures clock discipline, general service behavior, and RODC chaining parameters.
Registry path: Software\Policies\Microsoft\W32Time\Config
Clock Discipline
Field | Display Name | Description | Type | Range | Default |
| FrequencyCorrectRate | Rate at which W32time corrects local clock frequency. Lower = larger corrections. | Integer | 0–4294967295 |
|
| HoldPeriod | Consistent time samples required before evaluating spikes. | Integer | 0–4294967295 |
|
| LargePhaseOffset | Sample vs. local clock difference (100-ns units) treated as a spike. | Integer | 0–4294967295 |
|
| MaxAllowedPhaseOffset | Larger variation sets clock immediately; smaller is corrected gradually. | Integer | 0–4294967295 |
|
| MaxNegPhaseCorrection | Past time sample difference above this value is discarded. | Integer | 0–4294967295 |
|
| MaxPosPhaseCorrection | Future time sample difference above this value is discarded. | Integer | 0–4294967295 |
|
| PhaseCorrectRate | How quickly clock difference is corrected. Lower = faster. | Integer | 0–4294967295 |
|
| PollAdjustFactor | How quickly polling intervals change. | Integer | 0–4294967295 |
|
| SpikeWatchPeriod | Time (seconds) before large-offset samples are accepted. | Integer | 0–4294967295 |
|
| UpdateInterval | Wait between gradual corrections (1/100 second units). | Integer | 0–4294967295 |
|
General
Field | Display Name | Description | Type | Range | Default |
| AnnounceFlags | Bitmask for NetLogon time service advertisement. | Integer | 0–4294967295 |
|
| EventLogFlags | Special events logged to the System log. | Integer | 0–4294967295 |
|
| LocalClockDispersion | Max error (seconds) reported to NTP clients using local CMOS clock. | Integer | 0–4294967295 |
|
| MaxPollInterval | Maximum polling interval, log₂ seconds (default = 2¹⁰ = 1024s). | Integer | 0–15 |
|
| MinPollInterval | Minimum polling interval, log₂ seconds (default = 2⁶ = 64s). | Integer | 0–15 |
|
| ClockHoldoverPeriod | Max seconds the clock holds accuracy without sync before rediscovery. | Integer | 0–4294967295 |
|
| RequireSecureTimeSyncRequests | If | Integer | 0 or 1 |
|
| UtilizeSslTimeData | Use SSL traffic time data for clock correction. | Integer | 0 or 1 |
|
| ClockAdjustmentAuditLimit | Smallest clock adjustments logged (PPM). | Integer | 0–4294967295 |
|
RODC Chaining
Field | Display Name | Description | Type | Range | Default |
| ChainEntryTimeout | Max seconds a RODC chain entry remains before expiry. | Integer | 0–4294967295 |
|
| ChainMaxEntries | Max RODC chaining table entries. | Integer | 0–4294967295 |
|
| ChainMaxHostEntries | Max chaining entries per host. | Integer | 0–4294967295 |
|
| ChainDisable | If | Integer | 0 or 1 |
|
| ChainLoggingRate | Minutes between RODC chaining success/failure event logs. | Integer | 0–4294967295 |
|
3. Configure Windows NTP Client (w32TimePolicyConfigureNtpClient)
Configures how the device discovers and communicates with NTP time sources.
Registry path: Software\Policies\Microsoft\W32time\TimeProviders\NtpClient
Field | Display Name | Description | Type | Values / Range | Default |
| NtpServer | DNS name or IP of NTP source in | String |
|
|
| Type | Controls the authentication/sync mode W32time uses. | String |
|
|
| CrossSiteSyncFlags | How W32time chooses sync partners outside its site (ignored unless Type is | Integer | 0 = None, 1 = PdcOnly, 2 = All |
|
| ResolvePeerBackoffMinutes | Minutes to wait before retrying DNS resolution after failure. | Integer | 0–999999 |
|
| ResolvePeerBackoffMaxTimes | DNS resolve attempts before discovery restarts; wait doubles each failure. | Integer | 0–999999 |
|
| SpecialPollInterval | Poll interval (seconds) for manual/special-interval sources. Must fall within [2^MinPollInterval, 2^MaxPollInterval]. | Integer | 0–4294967295 |
|
| EventLogFlags | Bitmask: | Integer | 0, 1, 2, or 3 |
|
Sync Type Reference
Value | Behavior |
| Sync from the domain hierarchy (default for domain-joined devices) |
| Sync from the server configured in |
| Use both domain hierarchy and NTP |
| Disable time synchronization |
4. Enable NTP Client (enableNtpClient)
Property | Value |
Field name |
|
Type | Boolean |
Description | Enables or disables the Windows NTP Client time provider. |
5. Enable NTP Server (enableNtpServer)
Property | Value |
Field name |
|
Type | Boolean |
Description | Enables or disables the Windows NTP Server time provider. |
⚠️ Warning: Enabling the NTP server on endpoints exposes a listening service. Only enable this on devices that need to serve time to other clients.
Common Deployment Patterns
Fixed-location kiosks or conference-room devices
Set configureTimeZone to the site's time zone and leave W32Time at defaults.
Domain-joined enterprise devices
Use type = NT5DS (the default) so devices sync from the domain hierarchy. Configure crossSiteSyncFlags = 2 to allow cross-site fallback.
Non-domain-joined or external NTP source
Set type = NTP, specify your NTP servers in ntpServer (e.g., pool.ntp.org,0x01), and set specialPollInterval to your desired polling frequency.
Troubleshooting
Symptom | Check |
Time zone not applying | Verify the device meets Windows 10 1903+. Confirm the value matches a valid |
NTP settings not applying | Ensure the device has KB5005101 (Win 10) or is on Windows 11 21H2+. |
Clock drifting despite policy | Check |
Event log is noisy | Lower |
DNS resolution failures for NTP | Review |
FAQ
Q: Can I set the time zone and W32Time settings in the same policy?
Yes. Both are part of the same policy object. Be aware they have different minimum OS requirements.
Q: What does the 0x09 flag mean in the default NTP server value?
It is a combination of 0x01 (SpecialInterval — use specialPollInterval) and 0x08 (Client — use client-mode association). See the Microsoft documentation for the full flag reference.
Q: What happens if minPollInterval is greater than maxPollInterval?
The W32Time service behavior is undefined. Always ensure minPollInterval ≤ maxPollInterval (both are log₂ values, max 15).
