Дополнительные настройки клавиатуры из Active Directory
У нас есть пользователи в нашей компании, которым необходимо использовать дополнительные Keybaords, для этого один из других администраторов написал сценарий VBS, который запускается, когда пользователи в определенной группе входят в систему на компьютере (это устанавливается как часть GPO применяется к этим пользователям).
Недавно к этой группе присоединились некоторые пользователи, которым требовались клавиатуры на дополнительных языках, поэтому я добавил в скрипт несколько дополнительных полей. Похоже, что новый скрипт отлично работает на компьютере, на котором никогда не была установлена клавиатура подобным образом, но для тех компьютеров, на которых кто-то вошел в систему со старым сценарием клавиатуры, клавиатуры, установленные этим сценарием, все еще применяются, но ни одна из дополнительных Клавиатуры, кажется, применяются к новой машине.
Вот сценарий, который я пытаюсь использовать:
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
'Portugese
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\2", "00000816", "REG_SZ"
'Japanese
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\3", "00000411", "REG_SZ"
'Japanese
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\4", "e0010411", "REG_SZ"
'Chinese
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\5", "00000804", "REG_SZ"
'Chinese
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\6", "e00e0804", "REG_SZ"
'Arabic Libya
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\7", "0000040c", "REG_SZ"
'German
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\8", "00000407", "REG_SZ"
'Swedish
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\9", "0000041d", "REG_SZ"
'Spanish
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\10", "0000040a", "REG_SZ"
WshShell.RegWrite "HKCU\Software\Microsoft\CTF\LangBar\ShowStatus", 0, "REG_DWORD"
WshShell.RegWrite "HKCU\Software\Microsoft\CTF\LangBar\ExtraIconsOnMinimized ", 1, "REG_DWORD"
WshShell.RegWrite "HKCU\Software\Microsoft\CTF\LangBar\Label", 1, "REG_DWORD"
WshShell.RegWrite "HKCU\Software\Microsoft\CTF\LangBar\Transparency", 0, "REG_DWORD"
Если я посмотрю на regedit на компьютере, который не отображает новые клавиатуры на языковой панели, и перейду к HKEY_USERS,.DEFAULT имеет раскладку клавиатуры, в которой перечислены только стандартные клавиатуры Великобритании. Но когда я регистрирую пользователя на машине, в HKEY_USERS внизу появляется новая запись, в которой перечислены 3 клавиатуры, которые отображаются на языковой панели (но не другие, которые были позже добавлены в VBS выше). Я попытался отредактировать строки для этой записи, это никак не повлияет, после перезагрузки внесенные мной изменения исчезают (я должен сделать это со своей машины с помощью regedit, поскольку у пользователя нет возможности получить эти настройки).
Я также попытался добавить дополнительную клавиатуру к пользовательской клавише.DEFAULT, и это не помогает ни после перезагрузки.
Есть ли способ заставить аппарат забыть обо всех настройках клавиатуры, которые были применены, чтобы при следующем входе в систему кто-нибудь использовал настройки, определенные в этом сценарии? Или в скрипте чего-то не хватает, что может заставить машину забыть старые настройки?
На данный момент единственный способ, которым я верю, будет работать - это переустановить компьютер, что, вероятно, излишне для исправления отсутствующих клавиатур, и нецелесообразно, когда есть 20 машин, которые нуждаются в этом ремонте, и в будущем могут потребоваться дополнительные клавиатуры.
Любая помощь приветствуется!
1 ответ
Я закончил тем, что изменил несколько вариантов там и закончил этим:
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
'German
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\2", "00000407", "REG_SZ"
'Japanese
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\3", "00000411", "REG_SZ"
'Chinese
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\4", "00000404", "REG_SZ"
'Swedish
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\5", "0000041d", "REG_SZ"
'Spanish
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\6", "0000040a", "REG_SZ"
'Portugese
WshShell.RegWrite "HKCU\Keyboard Layout\Preload\7", "00000816", "REG_SZ"
WshShell.RegWrite "HKCU\Software\Microsoft\CTF\LangBar\ShowStatus", 4, "REG_DWORD"
WshShell.RegWrite "HKCU\Software\Microsoft\CTF\LangBar\ExtraIconsOnMinimized", 1, "REG_DWORD"
WshShell.RegWrite "HKCU\Software\Microsoft\CTF\LangBar\Label", 1, "REG_DWORD"
WshShell.RegWrite "HKCU\Software\Microsoft\CTF\LangBar\Transparency", ff, "REG_DWORD"