1

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

我正在寻找一种通过 UI 或通过 Powershell 脚本一次性完成此操作的方法。

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

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

4

1 回答 1

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"
}

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

于 2015-10-29T10:16:18.577 回答