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

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

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

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

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


person Shumii    schedule 29.10.2015    source источник


Ответы (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"
}

Конечно, вы должны обновить все свойства, вы можете использовать раздел переключателей со всеми свойствами и значениями или другие методы, дайте мне знать, если вам нужна дополнительная помощь по этому вопросу.

person Avshalom    schedule 29.10.2015
comment
Привет, спасибо за ваш ответ. Еще не пробовал, но выглядит как достойное решение. Есть шанс, что ты захочешь написать для меня весь сценарий? Я новичок в powershell, и хотя я понимаю все концепции, я никогда не могу найти правильную команду. Например, как указать все региональные свойства, это не то, что я нахожу простым. Я думаю, что сценарию потребуется всего одно изменение, чтобы он работал на моем компьютере (имя учетной записи для копирования). Не беспокойтесь, если вы все равно не можете немного разозлить меня. - person Shumii; 29.10.2015
comment
вы уже должны знать, что SO - это не написание кода и т. д., вы должны приложить некоторые усилия, попытаться использовать то, что я предложил, я помогу вам заставить его работать и добавить текст с желаемой настройкой международного ключа реестра. - Get-ItemProperty 'HKCU:\Control Panel\International' - person Avshalom; 29.10.2015