Azure Windows服务器通过PowerShell永久修改全用户时间格式
永久修改Azure Windows服务器所有用户的日期时间格式(dd/mm/yyyy)
前提确认
先在Windows Admin Center的PowerShell会话中执行以下命令,确认当前的文化与日期格式配置:
Get-Culture | Select-Object Name, ShortDatePattern Get-WinSystemLocale
确认输出的ShortDatePattern为MM/dd/yyyy,且系统区域设置不符合需求。
步骤1:修改系统级区域设置(影响新创建的用户)
执行以下PowerShell命令,将系统区域和当前用户文化设置为支持dd/mm/yyyy的格式(以en-GB为例,可根据实际需求替换为fr-FR等其他符合格式的区域代码):
# 设置系统区域 Set-WinSystemLocale en-GB # 设置当前用户文化 Set-Culture en-GB # 更新用户语言列表中的日期格式 $langList = Get-WinUserLanguageList $langList[0].ShortDatePattern = 'dd/MM/yyyy' Set-WinUserLanguageList $langList -Force
步骤2:批量修改已有用户的日期格式(关键)
系统级修改仅对新用户生效,需手动遍历所有已有本地用户,修改其注册表中的日期格式配置:
# 获取所有启用的本地用户 $enabledUsers = Get-LocalUser | Where-Object { $_.Enabled -eq $true } foreach ($user in $enabledUsers) { try { # 加载用户的NTUSER.DAT注册表 hive $regHivePath = "HKU\$($user.SID)" reg load $regHivePath "C:\Users\$($user.Name)\NTUSER.DAT" # 修改短日期格式 Set-ItemProperty -Path "$regHivePath\Control Panel\International" -Name "sShortDate" -Value "dd/MM/yyyy" # 可选:修改长日期格式 Set-ItemProperty -Path "$regHivePath\Control Panel\International" -Name "sLongDate" -Value "dd MMMM yyyy" # 卸载注册表 hive reg unload $regHivePath Write-Host "成功修改用户 $($user.Name) 的日期格式" } catch { Write-Warning "无法修改用户 $($user.Name) 的日期格式:$($_.Exception.Message)" } }
注意:执行该脚本需要管理员权限,且目标用户需处于未登录状态(否则NTUSER.DAT文件会被锁定,无法加载修改)。
步骤3:验证与生效
- 重启服务器,确保所有配置生效
- 在Windows Admin Center中重新执行
Get-Culture | Select-Object ShortDatePattern,确认输出为dd/MM/yyyy - 检查依赖时间格式的应用输出,确认显示正常
额外注意事项
- 若你的业务需要其他区域的日期格式,可将上述命令中的
en-GB替换为对应的区域代码(如es-ES、zh-HK等,需确保该区域默认短日期格式为dd/mm/yyyy) - 部分应用可能存在硬编码时间格式的情况,若修改系统设置后仍有问题,需检查应用自身的配置文件或参数
内容的提问来源于stack exchange,提问作者Manuel
相关产品推荐
相关产品推荐

