ADMXIngestion(Windows 配置设计器参考)

从 Windows 10 版本 1703 开始,可以导入 (引入) 组策略 管理模板 (ADMX 文件) ,并在预配包中为 ADMX 支持的策略配置值。 若要查看可以应用哪些类型的 ADMX 支持的策略,请参阅 Win32 和桌面桥应用策略配置概述

重要提示

只能使用预配包设置 (class=“Machine”或 class=“Both”) 的设备范围策略。

适用范围

设置组 Windows 客户端 Surface Hub HoloLens IoT 企业版
ConfigADMXInstalledPolicy
ConfigOperations

ConfigOperations

使用 ConfigOperations 从 ADMX 文件导入 ADMX 策略。

  1. 输入应用名称,然后单击添加。 这可以是你指定的任何名称,因此请选择描述性名称以帮助你识别其目的。 例如,如果要为 Chromium Edge 导入 ADMX,请输入应用名称。 例子 MSEdgeEfficiencyMode

  2. 在自定义设置窗格中选择应用名称,然后单击添加策略首选项选择不会影响设置行为,仅为了便于对添加的设置进行分类。

  3. 在自定义设置窗格中选择设置类型。 在 AdmxFileUid 字段中,输入 ADMX 文件的名称或文件的唯一 ID,然后单击添加AdmxFileUid 可以是任何字符串,但在预配包中必须唯一。 使用 ADMX 文件的名称将帮助你将来识别该文件。 例子 MSEdgeEfficiencyMode

    注意

    使 AdmxFileUid 和 AppName 保持相同将有助于防止授权错误。

  4. 在自定义设置窗格中选择 AdmxFileUid,并将 ADMX 文件的内容粘贴到文本字段中。 复制 ADMX 文件的内容之前,你必须将其转换为单行。 请参阅将多行转换为单行中的说明。

    注意

    当 ADMX 文件较大时,你可能仅想包括特定设置。 你可以不粘贴整个 ADMX 文件,而是粘贴一个或多个特定策略(将其转换为单行后)。

    示例,EfficiencyMode

    <policy class="Both" displayName="$(string.EfficiencyMode)" explainText="$(string.EfficiencyMode_Explain)" key="Software\Policies\Microsoft\Edge" name="EfficiencyMode" presentation="$(presentation.EfficiencyMode)">      <parentCategory ref="Performance"/>      <supportedOn ref="SUPPORTED_WIN7_V96"/>      <elements>        <enum id="EfficiencyMode" valueName="EfficiencyMode">          <item displayName="$(string.EfficiencyMode_AlwaysActive)">            <value>              <decimal value="0"/>            </value>          </item>          <item displayName="$(string.EfficiencyMode_NeverActive)">            <value>              <decimal value="1"/>            </value>          </item>          <item displayName="$(string.EfficiencyMode_ActiveWhenUnplugged)">            <value>              <decimal value="2"/>            </value>          </item>          <item displayName="$(string.EfficiencyMode_ActiveWhenUnpluggedBatteryLow)">            <value>              <decimal value="3"/>            </value>          </item>        </enum>      </elements>    </policy>
    
  5. 对你要添加的每一个 ADMX 或每一组 ADMX 策略重复此操作,然后逐一配置 ConfigADMXInstalledPolicy

ConfigADMXInstalledPolicy

重要提示

配置设置,以便先将 ADMX 文件导入 ConfigOperations

ConfigADMXInstalledPolicy 中,从导入的 ADMX 提供策略设置和该策略的值。 你需要使用导入 ConfigOperations 中的 ADMX 的信息完成 ConfigADMXInstalledPolicy

  1. 输入区域名称,然后单击添加。 区域名称的结构如下:<AppName (from ConfigOperations)>~<SettingType>~<category name from ADMX> 有关详细信息,请参阅 ADMX 中的类别和策略 。 设置可能具有多个级别的类别名称,如以下示例所示。 示例:MSEdgeEfficiencyMode~Policy~microsoft_edge~Performance
  2. 在自定义设置窗格中选择区域名称,输入 ADMX 的策略名称,然后单击添加。 示例: EfficiencyMode
  3. 在自定义设置窗格中选择策略名称,然后在文本字段中输入 ADMX 的值。 示例: <enabled/><data id="EfficiencyMode" Value="2">

ADMX 中的类别和策略

以下示例演示上述过程中的示例中使用的 Chromium Edge 的 ADMX 文件。 第一个示例突出显示了类别名称。

  <categories>
    <category displayName="$(string.microsoft_edge)" name="microsoft_edge"/>
    <category displayName="$(string.Performance_group)" name="Performance">
      <parentCategory ref="microsoft_edge"/>
    </category>
  </categories>

下一个示例突出显示了特定策略。

    <policy class="Both" displayName="$(string.EfficiencyMode)" explainText="$(string.EfficiencyMode_Explain)" key="Software\Policies\Microsoft\Edge" name="EfficiencyMode" presentation="$(presentation.EfficiencyMode)">
      <parentCategory ref="Performance"/>
      <supportedOn ref="SUPPORTED_WIN7_V96"/>
      <elements>
        <enum id="EfficiencyMode" valueName="EfficiencyMode">
          <item displayName="$(string.EfficiencyMode_AlwaysActive)">
            <value>
              <decimal value="0"/>
            </value>
          </item>
          <item displayName="$(string.EfficiencyMode_NeverActive)">
            <value>
              <decimal value="1"/>
            </value>
          </item>
          <item displayName="$(string.EfficiencyMode_ActiveWhenUnplugged)">
            <value>
              <decimal value="2"/>
            </value>
          </item>
          <item displayName="$(string.EfficiencyMode_ActiveWhenUnpluggedBatteryLow)">
            <value>
              <decimal value="3"/>
            </value>
          </item>
        </enum>
      </elements>
    </policy>

将多行转换为单行

使用以下 PowerShell cmdlet 删除多行文件的回车号和换行符,以创建可以粘贴到 AdmxFileUid 中的单行文件。

$outputFile = "output.admx"
$inputFile = "input.admx"
(Get-Content $inputFile -Raw).Replace("`r`n","") | Set-Content $outputFile -Force

配置示例

示例:边缘效率模式

<?xml version="1.0" encoding="utf-8"?>
<WindowsCustomizations>
  <PackageConfig xmlns="urn:schemas-Microsoft-com:Windows-ICD-Package-Config.v1.0">
    <ID>{d1ab1e3e-6e6d-4bd5-b35b-34cca18d2e16}</ID>
    <Name>MSEdgeEfficiencyMode</Name>
    <Version>1.1</Version>
    <OwnerType>OEM</OwnerType>
    <Rank>0</Rank>
    <Notes></Notes>
  </PackageConfig>
  <Settings xmlns="urn:schemas-microsoft-com:windows-provisioning">
    <Customizations>
      <Common>
        <ADMXIngestion>
          <ConfigADMXInstalledPolicy>
            <AreaName>
              <PolicyName AreaName="MSEdgeEfficiencyMode~Policy~microsoft_edge~Performance" Name="MSEdgeEfficiencyMode~Policy~microsoft_edge~Performance">
                <SetAdmxPolicy PolicyName="EfficiencyMode" Name="EfficiencyMode">&lt;enabled/&gt;&lt;data id="EfficiencyMode" value="2"/&gt;</SetAdmxPolicy>
              </PolicyName>
            </AreaName>
          </ConfigADMXInstalledPolicy>
          <ConfigOperations>
            <ADMXInstall>
              <AppName>
                <SettingType AppName="MSEdgeEfficiencyMode" Name="MSEdgeEfficiencyMode">
                  <ADMXFileUniqueID SettingType="Policy" Name="Policy">
                    <InsertADMXFile AdmxFileUid="MSEdgeEfficiencyMode" Name="MSEdgeEfficiencyMode">&lt;?xml version="1.0" ?&gt;&lt;policyDefinitions revision="1.0" schemaVersion="1.0" xmlns="http://www.microsoft.com/GroupPolicy/PolicyDefinitions"&gt;  &lt;!--microsoft_edge version: 96.0.1054.62--&gt;  &lt;policyNamespaces&gt;    &lt;target namespace="Microsoft.Policies.Edge" prefix="microsoft_edge"/&gt;    &lt;using namespace="Microsoft.Policies.Windows" prefix="windows"/&gt;  &lt;/policyNamespaces&gt;  &lt;resources minRequiredRevision="1.0"/&gt;  &lt;supportedOn&gt;    &lt;definitions&gt;      &lt;definition displayName="$(string.SUPPORTED_WIN7_V96)" name="SUPPORTED_WIN7_V96"/&gt;    &lt;/definitions&gt;  &lt;/supportedOn&gt;  &lt;categories&gt;    &lt;category displayName="$(string.microsoft_edge)" name="microsoft_edge"/&gt;    &lt;category displayName="$(string.Performance_group)" name="Performance"&gt;      &lt;parentCategory ref="microsoft_edge"/&gt;    &lt;/category&gt;  &lt;/categories&gt;  &lt;policies&gt;    &lt;policy class="Both" displayName="$(string.EfficiencyMode)" explainText="$(string.EfficiencyMode_Explain)" key="Software\Policies\Microsoft\Edge" name="EfficiencyMode" presentation="$(presentation.EfficiencyMode)"&gt;      &lt;parentCategory ref="Performance"/&gt;      &lt;supportedOn ref="SUPPORTED_WIN7_V96"/&gt;      &lt;elements&gt;        &lt;enum id="EfficiencyMode" valueName="EfficiencyMode"&gt;          &lt;item displayName="$(string.EfficiencyMode_AlwaysActive)"&gt;            &lt;value&gt;              &lt;decimal value="0"/&gt;            &lt;/value&gt;          &lt;/item&gt;          &lt;item displayName="$(string.EfficiencyMode_NeverActive)"&gt;            &lt;value&gt;              &lt;decimal value="1"/&gt;            &lt;/value&gt;          &lt;/item&gt;          &lt;item displayName="$(string.EfficiencyMode_ActiveWhenUnplugged)"&gt;            &lt;value&gt;              &lt;decimal value="2"/&gt;            &lt;/value&gt;          &lt;/item&gt;          &lt;item displayName="$(string.EfficiencyMode_ActiveWhenUnpluggedBatteryLow)"&gt;            &lt;value&gt;              &lt;decimal value="3"/&gt;            &lt;/value&gt;          &lt;/item&gt;        &lt;/enum&gt;      &lt;/elements&gt;    &lt;/policy&gt;  &lt;/policies&gt;&lt;/policyDefinitions&gt;</InsertADMXFile>
                  </ADMXFileUniqueID>
                </SettingType>
              </AppName>
            </ADMXInstall>
          </ConfigOperations>
        </ADMXIngestion>
      </Common>
    </Customizations>
  </Settings>
</WindowsCustomizations>