我目前正在为 Windows 2016 基础映像构建 AWS AMI。我是通过为打包程序创建模板来做到这一点的,并且在让系统和默认用户帐户正确设置其区域设置时遇到问题。
我需要将区域设置设置为 en-AU(AWS AMI 默认为 en-US(。
到目前为止,我已经尝试了以下Powershell命令,但没有成功:
# Update Locale settings
Set-Culture en-AU
Set-WinSystemLocale en-AU
Set-WinUserLanguageList en-AU -Force
以上似乎仅适用于运行打包程序的用户。
我正在使用 Inspec 通过以下测试来验证结果:
control "validate-locale-settings" do
# Check that the WinSystemLocale is set to en-AU
describe command('Get-WinSystemLocale') do
its('stdout') { should match /en-AU/ }
end
describe registry_key('Timezone','HKLMSYSTEMCurrentControlSetControlTimeZoneInformation') do
it { should have_property_value 'DaylightName', :string, 'AUS Eastern Daylight Time' }
it { should have_property_value 'TimeZoneKeyName', :string, 'AUS Eastern Standard Time' }
end
# Check that the test user is being set to en-AU
describe command('(Get-ItemProperty "REGISTRY::HKLMControl PanelInternational").LocaleName') do
its('stdout') { should match /en-AU/ }
end
end
如果我以打包程序用户身份运行inspec 测试,则测试将通过,但我以管理员用户身份运行它们,它们失败了。
我正在寻找一个脚本,相当于控制面板"复制设置"按钮,您可以通过控制面板使用。
">控制面板/区域"下的"管理"选项卡
我在安装 Windows Server Core 2022 时遇到了这个问题,因此没有简单的 UI 解决方案,例如"区域设置"选项卡中的"复制设置"。 我想要一个Powershell或CLI解决方案,就像你说的那样,它可以应用于用户,但不能复制到所有用户。
为此,我从刘易斯·罗伯茨(Lewis Roberts(在他的博客上的一篇文章中找到了帮助 https://www.lewisroberts.com/2017/03/01/set-language-culture-timezone-using-powershell/
您需要使用control.exe
导入区域设置 XML 文件。 以下内容将适用于英国en-GB
区域,因此请进行调整以满足您的要求。
将以下 XML 保存到名为UKRegion.xml
的文件或所需的任何文件中。
<gs:GlobalizationServices xmlns:gs="urn:longhornGlobalizationUnattend">
<!--User List-->
<gs:UserList>
<gs:User UserID="Current" CopySettingsToDefaultUserAcct="true" CopySettingsToSystemAcct="true"/>
</gs:UserList>
<!-- user locale -->
<gs:UserLocale>
<gs:Locale Name="en-GB" SetAsCurrent="true"/>
</gs:UserLocale>
<!-- system locale -->
<gs:SystemLocale Name="en-GB"/>
<!-- GeoID -->
<gs:LocationPreferences>
<gs:GeoID Value="242"/>
</gs:LocationPreferences>
<gs:MUILanguagePreferences>
<gs:MUILanguage Value="en-GB"/>
<gs:MUIFallback Value="en-US"/>
</gs:MUILanguagePreferences>
<!-- input preferences -->
<gs:InputPreferences>
<!--en-GB-->
<gs:InputLanguageID Action="add" ID="0809:00000809" Default="true"/>
</gs:InputPreferences>
</gs:GlobalizationServices>
然后使用以下命令(Powershell 格式(导入它:
& $env:SystemRootSystem32control.exe "intl.cpl,,/f:`"UKRegion.xml`""
您仍然需要重新启动,但这对我有用,并将ASPNET工作程序设置为默认使用en-GB
区域设置,而无需在代码或web.config中进行设置。 这对我来说特别有用,因为我使用它来使用启动模板设置 EC2 实例,因此许多其他解决方案不起作用。