Изменение региональных настроек Windows для локальных пользователей через Powershell

Я создал более 100 пользователей, используя неправильные региональные настройки, поэтому неверный формат даты. Я хочу исправить это, не входя в систему под именем каждого пользователя и не пройдя необходимые шаги.

Я ищу способ сделать это за один раз или через пользовательский интерфейс или через скрипт Powershell.

В идеале мне нужен скрипт, который будет ForEach для локальных пользователей и запускает команду для изменения их языковых / региональных настроек.

ПРИМЕЧАНИЕ. Я не использую Active Directory, поэтому не могу использовать групповые политики.

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 со всеми свойствами и значениями, или другие методы, дайте мне знать, если вам нужна дополнительная помощь по этому вопросу.

Другие вопросы по тегам