Hello Alexn,
Yes, this behavior can be reproduced, and it’s not a misconfiguration on your side. The root cause is that the Set-TimeZone cmdlet in PowerShell does not enforce the same privilege checks as the GUI or tzutil.exe. In Windows 10 LTSC 2019 (build 17763.x), the cmdlet directly writes to the registry under HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation without requiring elevation. That bypasses the GPO restriction which only hooks into the GUI and legacy command-line tools.
This is essentially a gap in enforcement: the Group Policy setting “Prevent users from changing the time zone” (located under Computer Configuration > Administrative Templates > System > Time Zone) only blocks UI and tzutil.exe. It does not extend to PowerShell’s Set-TimeZone. Microsoft has acknowledged this as a product limitation rather than a misconfiguration.
There is no supported registry tweak or GPO extension that closes this loophole. The only reliable mitigation today is to restrict access to PowerShell for non-admin accounts, or to use AppLocker/WDAC policies to block Set-TimeZone specifically. For example, you can create an AppLocker rule under “Script Rules” to deny execution of Microsoft.PowerShell.Management\Set-TimeZone. This way, users can still run PowerShell but won’t be able to invoke that cmdlet.
If you need a more granular approach, WDAC with a deny rule for Set-TimeZone is the cleanest solution. Otherwise, you’ll have to wait for Microsoft to address this in a future cumulative update, as it’s a design oversight in LTSC 2019.
I hope you've found something useful here. If it helps you get more insight into the issue, it's appreciated to accept the answer. Should you have more questions, feel free to leave a message. Have a nice day!
HP.