通过Powershell更改Windows本地用户区域设置

时间:2015-10-29 09:02:10

标签: powershell windows-server-2012 regional-settings windows-administration

我使用错误的区域设置创建了100多个用户,因此错误的日期格式。我希望在不登录每个用户并完成必要步骤的情况下纠正此问题。

我正在寻找一种方法,可以通过UI或Powershell脚本一次性完成。

理想情况下,我想要一个ForEach本地用户并运行命令来更改其语言/区域设置的脚本。

注意:我没有使用Active Directory,因此无法使用组策略。

1 个答案:

答案 0 :(得分:1)

在其中一个用户中设置所需的设置,然后从

获取这些设置
"HKEY_CURRENT_USER\Control Panel\International"

找到每个用户的SID

将其应用于每个用户:

"HKEY_USERS\[UserSID]\Control Panel\International"

要获取用户的SID,您可以使用此功能:

Function GetSIDfromSAM()
{
    Param(
        [Parameter(mandatory=$true)]$userName
    )
    $myacct = Get-WmiObject Win32_UserAccount -filter "Name='$userName'" 
    return $myacct.sid
}

GetSIDfromSAM localuser
S-1-5-21-1837353773-20556466214-3321741005-1005

然后使用Foreach部分(仅举例)

New-PSDrive HKU Registry HKEY_USERS

Foreach ($SID in $SIDs)
{
Set-ItemProperty -Path "HKU:\$SID\Control Panel\International" -Name "LocaleName" -Value "en-us"
}

当然你应该更新所有属性,你可以使用包含所有属性和值的开关部分,或其他方法,如果你需要更多的帮助,请告诉我