我正在尝试使用自动 PowerShell 启动脚本为 Google Compute Engine Windows 实例上的所有用户设置默认语言环境/区域。
我尝试过以下脚本:
Import-Module International
#set home location to Australia
Set-WinHomeLocation -GeoId 12
# Set locale to English (Australia) (needs a restart)
Set-WinSystemLocale en-AU
# Set regional format (date/time etc.) to English (Australia) - this applies to all users
Set-Culture en-AU
# Set the language list for the user, forcing English (Australia) to be the only language
Set-WinUserLanguageList en-AU -Force
以及此脚本,使用区域 xml 文件将与上述相同的设置复制到默认帐户和系统帐户:
& "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\gsutil" cp gs://mybucket/auregion.xml C:\
& $env:SystemRoot\System32\control.exe "intl.cpl,,/f:`"c:\auregion.xml`""
auregion.xml 的内容:
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<!--User List-->
<gs:UserList>
<gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="true"/>
</gs:UserList>
<gs:UserLocale>
<gs:Locale Name="en-AU" SetAsCurrent="true"/>
</gs:UserLocale>
<gs:SystemLocale Name="en-AU"/>
<!--location-->
<gs:LocationPreferences>
<gs:GeoID Value="12"/>
</gs:LocationPreferences>
</gs:GlobalizationServices>
但当设置为windows-启动脚本-ps1或者作为sysprep-专门化脚本-ps1在 GCE 中。我知道脚本正在运行,因为它还通过正在运行的 tzutil 设置时区,并且它确实为第二个脚本创建了 auregion.xml 文件。
当远程用户运行虚拟机时,相同的脚本也能正常工作。
也许有更简单的方法?除了创建自定义图像外,我在 GCE 中看不到任何用于自动设置区域设置的配置选项。
答案1
发布一个答案供查看该主题的用户参考。
Set-WinSystemLocale 将使用'与 GCE 上的启动脚本一起工作windows-启动脚本-ps1' 键。这需要重新启动,因为它似乎无法在 sysprep specialize 期间进行设置。
对于 Set-WinHomeLocation、Set-Culture 和 Set-WinUserLanguageList,无法使用 GCE 上的启动脚本设置值,因为它需要当前用户的所有更改设置。