为使用 Configuration Manager 客户端管理的 Windows 桌面和服务器计算机创建自定义配置项目

适用于: Configuration Manager(current branch)

使用Configuration Manager自定义 Windows 桌面和服务器配置项目来管理由 Configuration Manager 客户端管理的 Windows 计算机和服务器的设置。

启动向导

  1. 在Configuration Manager控制台中,转到“资产和符合性”工作区,展开“符合性设置”,然后选择“配置项目”节点。

  2. 在功能区的“ 开始 ”选项卡上的“ 创建 ”组中,选择“ 创建配置项目”。

  3. “创建配置项目向导”的“常规”页上,为配置项目指定名称和可选说明。

  4. “指定要创建的配置项目类型”下,选择“ Windows 桌面和服务器” (自定义)

    • 如果要提供用于检查应用程序是否存在的检测方法设置,请选择“ 此配置文件包含应用程序设置”。
  5. 若要帮助你在 Configuration Manager 控制台中搜索和筛选配置项目,请选择“类别”以创建和分配类别。

检测方法

使用此过程可为配置项目提供检测方法信息。

注意

只有在向导的“常规”页上选择“此配置项目包含应用程序设置”时,此信息才适用。

Configuration Manager 中的检测方法包含用于检测计算机上是否安装了应用程序的规则。 此检测发生在客户端评估其配置项目的符合性之前。 若要检测是否安装了应用程序,可以检测是否存在应用程序的 Windows Installer 文件、使用自定义脚本,或选择“ 始终假定已安装应用程序 ”以评估配置项目的合规性,而不管是否安装了该应用程序。

使用 Windows Installer 文件检测应用程序安装

  1. “创建配置项目向导”的“检测方法”页上,选择“使用 Windows 安装程序检测”选项。

  2. 选择“ 打开”,浏览到要检测的 Windows Installer (.msi) 文件,然后选择“ 打开”。

  3. 版本” 字段会自动填充 Windows Installer 文件的版本号。 如果显示的值不正确,请在此处输入新的版本号。

  4. 如果要检测计算机上的每个用户配置文件,请选择 “为一个或多个用户安装此应用程序”。

检测特定应用程序和部署类型

  1. “创建配置项目向导”的“检测方法”页上,选择“检测特定应用程序和部署类型”。 选择“选择”。

  2. 在“ 指定应用程序 ”对话框中,选择要检测的应用程序和关联的部署类型。

使用自定义脚本检测应用程序安装

当Windows PowerShell脚本作为检测方法运行时,Configuration Manager客户端使用 -NoProfile 参数调用 PowerShell。 此选项在不使用配置文件的情况下启动 PowerShell。 PowerShell 配置文件是在 PowerShell 启动时运行的脚本。

  1. “创建配置项目向导”的“检测方法”页上,选择“使用自定义脚本检测此应用程序”选项。

  2. 在列表中,选择脚本的语言。 从以下格式中进行选择:

    • VBScript

    • JScript

    • PowerShell

  3. 选择“ 打开”,浏览到要使用的脚本,然后选择“ 打开”。

    重要

    使用签名的 PowerShell 脚本时,请确保选择“ 打开”。 不能对签名脚本使用复制和粘贴。

指定支持的平台

“创建配置项目向导”的“支持的平台”页上,选择要评估配置项目符合性的 Windows 版本,或选择“全选”。

还可以 手动指定 Windows 的版本。 选择“ 添加 ”并指定 Windows 内部版本号的每个部分。

注意

指定Windows Server 2016时,的 All Windows Server 2016 and higher 64-bit) 所选内容还包括 Windows Server 2019。 若要仅指定Windows Server 2016,请使用手动指定 Windows 版本的选项。

配置设置

使用此过程在配置项目中配置设置。

设置表示用于在客户端设备上评估合规性的业务或技术条件。 可以配置新设置或浏览到引用计算机上的现有设置。

  1. “创建配置项目向导”的“设置”页上,选择“新建”。

  2. 在“创建设置”对话框的“常规”选项卡上,提供以下信息:

  3. 在“ 设置类型 ”列表下配置有关此设置的其他详细信息。 可以配置的项目因所选的设置类型而异。

  4. 选择 “确定” 以保存设置并关闭“ 创建设置 ”对话框。

Active Directory 查询

  • LDAP 前缀:为Active Directory 域服务查询指定有效的前缀,以评估客户端计算机上的符合性。 若要执行全局编录搜索,请使用 LDAP://GC://

  • 可分辨名称 (DN) :指定在客户端计算机上评估符合性的Active Directory 域服务对象的可分辨名称。

  • 搜索筛选器:指定可选的 LDAP 筛选器以优化Active Directory 域服务查询的结果,以评估客户端计算机上的符合性。 若要返回查询中的所有结果,请输入 (objectclass=*)

  • 搜索范围:在 Active Directory 域服务 中指定搜索范围

    • :仅查询指定的对象

    • 一级:此版本的 Configuration Manager

    • 子树:在目录中查询指定的对象及其完整的子树

  • 属性:指定用于评估客户端计算机上符合性的 Active Directory 域服务 对象的属性。

    例如,如果要查询存储用户错误输入密码的次数的 Active Directory 属性,请在此字段中输入 badPwdCount

  • 查询:显示从 LDAP 前缀可分辨名称 (DN) 搜索筛选器 ((如果指定) )和 属性中的条目构造的查询。

Assembly

程序集是可在应用程序之间共享的代码片段。 程序集的文件扩展名可以.dll或.exe。 全局程序集缓存是客户端计算机上的 文件夹 %SystemRoot%\Assembly 。 此缓存是 Windows 存储所有共享程序集的位置。

  • 程序集名称: 指定要搜索的程序集对象的名称。 名称不能与同一类型的其他程序集对象相同。 首先在全局程序集缓存中注册它。 程序集名称的长度最多为 256 个字符。

文件系统

  • 类型:在列表中,选择是要搜索 文件 还是 文件夹

  • 路径:指定客户端计算机上指定文件或文件夹的路径。 可以在路径中指定系统环境变量和 %USERPROFILE% 环境变量。

    • 文件系统设置类型不支持在“路径”框中指定网络共享的 UNC 路径

    • 如果在“路径%USERPROFILE%或“文件或文件夹名称”框中使用环境变量,则Configuration Manager客户端将搜索客户端计算机上的所有用户配置文件。 此行为可能导致它找到文件或文件夹的多个实例。

    • 如果符合性设置无权访问指定路径,则会生成发现错误。 此外,如果要搜索的文件当前正在使用中,则会生成发现错误。

      提示

      选择“ 浏览 ”,根据引用计算机上的值配置设置。

  • 文件或文件夹名称:指定要搜索的文件或文件夹对象的名称。 可以在文件或文件夹名称中指定系统环境变量和 %USERPROFILE% 环境变量。 还可以在文件名中使用通配符 *?

    • 如果指定文件或文件夹名称并使用通配符,则此组合可能会产生大量结果。 在向Configuration Manager报告结果时,它还可能导致客户端计算机上的资源使用率过高,网络流量也很高。
  • 包括子文件夹:同时搜索指定路径下的任何子文件夹。

  • 此文件或文件夹与 64 位应用程序相关联:如果启用,则仅搜索 64 位文件位置,例如 %ProgramFiles% 在 64 位计算机上。 如果未启用此选项,请同时搜索 64 位位置和 32 位位置,例如 %ProgramFiles(x86)%

    • 如果同一 64 位计算机上的 64 位和 32 位系统文件位置中存在同一个文件或文件夹,则全局条件会发现多个文件。

IIS 元数据库

  • 元数据库路径:指定 Internet Information Services (IIS) 元数据库的有效路径。 例如,/LM/W3SVC/

  • 属性 ID:指定 IIS 元数据库设置的数字属性。

注册表项

  • Hive:选择要搜索的注册表配置单元

    • 选择“ 浏览 ”,根据引用计算机上的值配置设置。 若要浏览到远程计算机上的注册表项,请在远程计算机上启用 远程注册表 服务。
  • :指定要搜索的注册表项名称。 使用格式 key\subkey

  • 此注册表项与 64 位应用程序相关联:在运行 64 位版本的 Windows 的客户端上搜索 64 位注册表项以及 32 位注册表项。

    • 如果同一 64 位计算机上的 64 位和 32 位注册表位置中存在同一注册表项,则全局条件会发现这两个注册表项。

注册表值

  • Hive:选择要搜索的注册表配置单元。

    • 选择“ 浏览 ”,根据引用计算机上的值配置设置。 若要浏览到远程计算机上的注册表值,请在远程计算机上启用 远程注册表 服务。 还需要管理员权限才能访问远程计算机。
  • :指定要搜索的注册表项名称。 使用格式 key\subkey

  • :指定必须包含在指定注册表项中的值。

  • 此注册表项与 64 位应用程序相关联:在运行 64 位版本的 Windows 的客户端上搜索 64 位注册表项以及 32 位注册表项。

    • 如果同一 64 位计算机上的 64 位和 32 位注册表位置中存在同一注册表项,则全局条件会发现这两个注册表项。

Script

脚本返回的值用于评估全局条件的符合性。 例如,使用 VBScript 时,可以使用 WScript.Echo Result 命令将 Result 变量值返回到全局条件。 使用 Windows PowerShell 作为发现或修正脚本时,Configuration Manager客户端使用 -NoProfile 参数调用 PowerShell。 此选项在不使用配置文件的情况下启动 PowerShell。 PowerShell 配置文件是在 PowerShell 启动时运行的脚本。

  • 发现脚本:选择“ 添加脚本”,然后输入或浏览到脚本。 此脚本用于查找值。 可以使用 Windows PowerShell、VBScript 或 Microsoft JScript 脚本。

  • 修正脚本 (可选) :选择 “添加脚本”,然后输入或浏览到脚本。 此脚本用于修正不符合的设置值。 可以使用 Windows PowerShell、VBScript 或 Microsoft JScript 脚本。

    重要

    • 若要正确报告修正失败,脚本需要引发异常,而不是非零退出代码。
  • 使用登录的用户凭据运行脚本:如果启用此选项,脚本将在使用已登录用户的凭据的客户端计算机上运行。

重要

  • 使用签名的 PowerShell 脚本时,请确保选择“ 打开”。 不能对签名脚本使用复制和粘贴。
  • 从 2207 开始,在配置符合性设置的客户端设置时,可以定义脚本执行超时 (秒)

SQL 查询

  • SQL Server实例:选择是要在默认实例、所有实例还是在指定的数据库实例名称上运行 SQL 查询。 实例名称必须引用 SQL Server 的本地实例。 若要引用SQL Server Always On故障转移群集实例或可用性组,请使用脚本设置。

  • 数据库:指定要对其运行 SQL 查询的 Microsoft SQL Server 数据库的名称。

  • :指定 Transact-SQL 语句返回的列名称,该语句用于评估全局条件的符合性。

  • Transact-SQL 语句:指定要用于全局条件的完整 SQL 查询。 若要使用现有 SQL 查询,请选择“ 打开”。

    重要

    SQL 查询设置不支持任何修改数据库的 SQL 命令。 只能使用从数据库中读取信息的 SQL 命令。

WQL 查询

  • 命名空间:指定在客户端计算机上评估符合性的 WMI 命名空间。 默认值为 root\cimv2

  • :在上述命名空间中指定目标 WMI 类。

  • 属性:在上述类中指定目标 WMI 属性。

  • WQL 查询 WHERE 子句:指定限定子句以减少结果。 例如,若要仅查询 Win32_Service 类中的 DHCP 服务,WHERE 子句可以是 Name = 'DHCP' and StartMode = 'Auto'

XPath 查询

  • 路径:指定用于评估符合性的客户端计算机上.xml文件的路径。 Configuration Manager支持在路径名称中使用所有 Windows 系统环境变量和%USERPROFILE%用户变量。

  • XML 文件名:指定上述路径中包含 XML 查询的文件名。

  • 包括子文件夹:启用此选项可在指定路径下搜索任何子文件夹。

  • 此文件与 64 位应用程序相关联:在运行 64 位%Windir%\System32版本的 Windows 的 Configuration Manager 客户端上搜索 64 位系统文件位置以及 32 位系统文件位置%Windir%\Syswow64

  • XPath 查询: (XPath) 查询指定有效的完整 XML 路径语言。

  • 命名空间:标识在 XPath 查询期间使用的命名空间和前缀。

如果尝试发现加密.xml文件,合规性设置会查找该文件,但 XPath 查询不会生成任何结果。 Configuration Manager客户端不会生成错误。

如果 XPath 查询无效,则会在客户端计算机上将设置评估为不符合。

配置合规性规则

符合性规则指定定义配置项符合性的条件。 在评估某个设置的符合性之前,它必须至少具有一个符合性规则。 使用 WMI、注册表和脚本设置,可以修正发现不符合要求的值。 可以创建新规则或浏览到任何配置项目中的现有设置,以选择其中的规则。

创建符合性规则

  1. “创建配置项目向导”的“符合性规则”页上,选择“新建”。

  2. 在“ 创建规则 ”对话框中,提供以下信息:

    • 名称:输入符合性规则的名称。

    • 说明:输入符合性规则的说明。

    • 所选设置:选择“ 浏览 ”以打开 “选择设置 ”对话框。 选择要为其定义规则的设置,或选择“ 新建设置”。 完成后,选择 “选择”。

      提示

      若要查看有关当前所选设置的信息,请选择“ 属性”。

    • 规则类型:选择要使用的符合性规则类型:

      • :创建一个规则,将配置项目返回的值与指定的值进行比较。 有关其他设置的详细信息,请参阅 值规则

      • 存在:创建一个规则,根据设置是存在于客户端设备上还是找到设置的次数来评估设置。 有关其他设置的详细信息,请参阅 存在规则

  3. 选择“ 确定” 关闭“ 创建规则 ”对话框。

值规则

  • 属性:要检查的对象的属性因所选设置而异。 可用属性因设置类型而异。

  • 设置必须符合以下条件...:可用规则或权限因设置类型而异。

  • 支持时修正不合规规则:为Configuration Manager选择此选项以自动修正不合规规则。 Configuration Manager使用以下规则类型支持此操作:

    • 注册表值:如果不符合,则客户端将设置注册表值。 如果不存在,则客户端将创建值。

    • 脚本:客户端使用通过 设置指定的修正脚本。

    • WQL 查询

    重要

    • 若要正确报告修正失败,脚本需要引发异常,而不是非零退出代码。
    • 仅当规则运算符设置为 Equals 时,才能修正不符合规则。
  • 如果未找到此设置实例,则报告不符合情况:如果在客户端计算机上找不到此设置,请为配置项目启用此选项以报告不符合情况。

  • 报表的不符合严重性:指定如果此符合性规则失败,Configuration Manager报告中报告的严重性级别。 提供以下严重性级别:

    • Information
    • 警告
    • 关键
    • 严重事件:不符合此符合性规则的计算机报告故障严重性为 “严重”。 此严重性级别也会在应用程序事件日志中记录为 Windows 事件。

存在规则

注意

显示的选项可能因要为其配置规则的设置类型而异。

  • 设置必须存在于客户端设备上

  • 客户端设备上不得存在此设置

  • 设置的发生次数如下:

  • 报表的不符合严重性:指定如果此符合性规则失败,Configuration Manager报告中报告的严重性级别。 提供以下严重性级别:

    • Information
    • 警告
    • 关键
    • 严重事件:不符合此符合性规则的计算机报告故障严重性为 “严重”。 此严重性级别也会在应用程序事件日志中记录为 Windows 事件。

跟踪配置项目修正

版本 2002) 中引入 (

从 Configuration Manager 版本 2002 开始,可以在配置项目符合性规则支持时跟踪修正历史记录。 启用此选项后,客户端上针对配置项目进行的任何修正都会生成状态消息。 历史记录存储在 Configuration Manager 数据库中。

使用公共视图 v_CIRemediationHistory生成自定义报表以查看修正历史记录。 列 RemediationDate 是客户端运行修正的时间(UTC)。 标识 ResourceID 设备。 使用 v_CIRemediationHistory 视图生成自定义报表有助于:

  • 识别修正脚本的可能问题
  • 查找修正趋势,例如每个评估周期始终不合规的客户端。

启用“支持时跟踪修正历史记录”选项

  • 对于新的配置项目,请在向导的“设置”页上创建新设置时,在“符合性规则”选项卡中添加“在支持时跟踪修正历史记录选项。
  • 对于现有配置项目,请在配置项目“属性”的“符合性规则”选项卡上添加“在受支持时跟踪修正历史记录”选项。 在版本 2002 中支持时跟踪修正历史记录

后续步骤

创建配置基线