Изменение раскладки клавиатуры в PowerShell для нескольких языков - PullRequest
0 голосов
/ 13 марта 2020

Этот вопрос является расширенной версией ЭТОГО

В windows -10 Мне нужно программно добавить 3 языка: en-US, SV, RU.

Хорошо работает со следующей командой:

Set-WinUserLanguageList en-US, sv, ru -Force

Проблема заключается в том, что таким образом система добавляет раскладку клавиатуры по умолчанию для каждого языка, тогда как мне нужна разная раскладка для русского языка - 0419: A0000419 (предварительно установлено)

Пытался решить головоломку следующим образом:

  $rusLang = New-WinUserLanguageList ru
  $rusLang[0].InputMethodTips.Clear()
  $rusLang[0].InputMethodTips.Add('0419:A0000419') # required layout
  Set-WinUserLanguageList en-US, sv, $rusLang

Это не сработало. Ошибка с InvalidArgument: (:) [Set-WinUserLanguageList], ParameterBindingException

Мне все равно, будет ли язык RU добавляться с желаемыми InputMethodTips , или это параметр перезаписывается после Set-WinUserLanguageList en-US, sv, ru -Force

Как его достичь?

1 Ответ

1 голос
/ 13 марта 2020

Попробуйте использовать этот код из здесь

Dism /Image:"C:\mount\windows" /Set-InputLocale:042d:0000040a
Dism /Image:"C:\mount\windows" /Set-InputLocale:0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}
Dism /Image:"C:\mount\windows" /Set-InputLocale:id-ID
Dism /Image:"C:\mount\windows" /Set-AllIntl:fr-FR

Или вы можете использовать вот так:

  $Lang = New-WinUserLanguageList en-US #you cant add all language at time(of course you can piping it)
  $Lang.Add("sv") #you must add it simple
  $Lang.Add("ru")
  $Lang[2].InputMethodTips.Clear()
  $Lang[2].InputMethodTips.Add('0419:A0000419') # required layout
  Set-WinUserLanguageList -LanguageList $Lang #input must be in format System.Collections.Generic.List<Microsoft.InternationalSettings.Commands.WinUserLanguage>
...