Windows 7 - 使用脚本更改区域和语言设置

Windows 7 - 使用脚本更改区域和语言设置

操作系统: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

另外,在删除键盘之前,请确保设置新的默认键盘曾是旧的默认键盘

相关内容