操作系统:Windows 7 64 位
我有一台机器“地区和语言”设置全部设置为“加拿大”我需要做的是更改所有这些设置以恢复默认设置“美国”。此外,我想创建一个脚本来执行此操作,因为我预计会遇到更多有此问题的机器。我不想在每台机器上都通过 GUI 更改设置。
我需要在这些选项卡上执行这些操作:
地区和语言(格式)-
我需要“格式”变成“美国英语)”
地区和语言(位置)-
我需要“当前位置”设置“美国”
区域和语言 - 文字服务和输入语言(常规)-
我需要删除除“英语(美国)- 美国”
地区和语言(行政)-
我相信“非 Unicode 程序”还必须设置为“美国英语)”
(我有截图,但我没有发布它们所需的声誉。)
到目前为止我已经找到了这个文件来自 Microsoft,演示了一个可以创建来修改上述设置的 XML 文件
问题是,链接中唯一一个似乎可以正常工作的 XML 示例是用于添加和设置键盘语言作为默认语言的示例。我尝试了一些其他示例,但它们似乎不起作用。这是一个有效示例:
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<!--User List-->
<gs:UserList>
<gs:User UserID="Current"/>
</gs:UserList>
<!--input preferences-->
<gs:InputPreferences>
<!--en-US-->
<gs:InputLanguageID Action="add" ID="0409:00000409" Default="true"/>
<!--en-CANADA-->
<gs:InputLanguageID Action="remove" ID="1009:00001009"/>
</gs:InputPreferences>
</gs:GlobalizationServices>
如果不存在,上述代码将添加美国键盘语言,然后将其设置为默认语言,但不幸的是我无法删除加拿大键盘语言。
有没有一种方法可以通过编程更改所有这些设置?我是否忽略了一些显而易见的事情?
答案1
我终于找到解决问题的方法了!
我学到了一些东西。
在里面“ID”,冒号前面的数字部分(“1009”)代表区域键盘,即英语(加拿大)。冒号后面的数字(“00001009”)是该键盘实际安装的语言。“00001009”实际上将针对英语(加拿大)区域键盘下的“加拿大法语”
我了解到的另一件事是,MS 网站上的区域代码显示不正确,这就是我无法正确更改“区域设置”的原因。此链接包含更改“区域设置”时需要使用的值。美国是 GeoID=244
我最后不得不做的另一件事是创建两个不同的 XML 文件并一个接一个地运行它们。出于某种原因,删除英语(加拿大)键盘及其所有子语言,然后在同一个脚本中添加英语(美国)键盘会产生错误,导致 XML 文件无法正确应用。我不得不在一个 XML 文件中删除键盘(我保留了格式和区域设置更改),并在另一个 XML 文件中添加美国键盘。
无论如何,对于任何感兴趣的人,我将在下面发布我的最终 XML 文件。为了运行它们,我在批处理文件中使用了以下命令。
控制 intl.cpl,, /f:" <path_to_file>
"
(第二个逗号后有一个空格)
第一个脚本用于删除键盘、更改格式和更改区域设置
特别注意“ID”值是如何完成的,它说明了我上面试图解释的内容!
<gs:User UserID="Current"/>
</gs:UserList>
<!--input preferences - Keyboard languages-->
<gs:InputPreferences>
<!--Beginning of en-CANADA-->
<!--Remove Canada French from under keyboard English(Canada)-->
<gs:InputLanguageID Action="remove" ID="1009:00001009"/>
<!--Remove Canadian MultiLingual Standard from under keyboard English(Canada)-->
<gs:InputLanguageID Action="remove" ID="1009:00011009"/>
<!--Remove US from under keyboard English(Canada)-->
<gs:InputLanguageID Action="remove" ID="1009:00000409"/>
<!--Beginning of en-US-->
<!--Add keyboard US(English)-->
<!--Please note that the command below was moved into another XML file. Reason being, it was causing an error-->
<!--that would stop the US keyboard from being installed properly.-->
<!--<gs:InputLanguageID Action="add" ID="0409:00000409" Default="true"/>-->
</gs:InputPreferences>
<!--location - Change location on Location tab to US-->
<gs:LocationPreferences>
<gs:GeoID Value="244"/>
</gs:LocationPreferences>
<!--User Locale - This changes formats to English(United States) ie M/dd/yyyy-->
<gs:UserLocale>
<gs:Locale Name="en-US" SetAsCurrent="true"/>
</gs:UserLocale>
</gs:GlobalizationServices>
此脚本将添加美式键盘并将其设置为系统默认键盘
<!--User List-->
<gs:UserList>
<gs:User UserID="Current"/>
</gs:UserList>
<!--input preferences - Keyboard languages-->
<gs:InputPreferences>
<!--Add keyboard US(English)-->
<gs:InputLanguageID Action="add" ID="0409:00000409" Default="true"/>
</gs:InputPreferences>
</gs:GlobalizationServices>
以上就是总结。
以下是一些其他有用的链接:
http://msdn.microsoft.com/en-us/library/ms912389%28WinEmbedded.11%29.aspx
http://texhex.blogspot.com/2009/10/installing-and-configuring-language.html
http://msdn.microsoft.com/en-us/goglobal/bb896001
http://technet.microsoft.com/en-us/library/cc766503(WS.10).aspx
答案2
另外,在删除键盘之前,请确保设置新的默认键盘曾是旧的默认键盘