我使用错误的区域设置创建了100多个用户,因此错误的日期格式。我希望在不登录每个用户并完成必要步骤的情况下纠正此问题。
我正在寻找一种方法,可以通过UI或Powershell脚本一次性完成。
理想情况下,我想要一个ForEach本地用户并运行命令来更改其语言/区域设置的脚本。
注意:我没有使用Active Directory,因此无法使用组策略。
答案 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"
}
当然你应该更新所有属性,你可以使用包含所有属性和值的开关部分,或其他方法,如果你需要更多的帮助,请告诉我