自动部署软件更新

适用于: Configuration Manager(current branch)

使用自动部署规则 (ADR) ,而不是将新更新添加到现有软件更新组。 通常,使用 ADR 部署每月软件更新 (也称为“补丁星期二”更新) 以及用于管理 Endpoint Protection 定义更新。 如果需要帮助来确定适合你的部署方法,请参阅 部署软件更新

(ADR) 创建自动部署规则

使用 ADR 自动批准和部署软件更新。 规则可以在每次运行规则时将软件更新添加到新的软件更新组,或者将软件更新添加到现有组。 当规则运行并将软件更新添加到现有组时,该规则会从该组中删除所有更新。 然后,它将符合定义的条件的更新添加到组中。

警告

首次创建 ADR 之前,请验证站点是否已完成软件更新同步。 使用非英语语言运行Configuration Manager时,此步骤非常重要。 软件更新分类在首次同步之前以英语显示,然后在软件更新同步完成后以本地化语言显示。 同步软件更新之前创建的规则在同步后可能无法正常工作,因为文本字符串可能不匹配。

创建 ADR 的过程

  1. 在Configuration Manager控制台中,转到“软件库”工作区,展开“软件汇报”,然后选择“自动部署规则”节点。

  2. 在功能区中,单击“ 创建自动部署规则”。

  3. 在“创建自动部署规则向导”的“ 常规 ”页上,配置以下设置:

    • 名称:指定 ADR 的名称。 名称必须是唯一的,有助于描述规则的用途,并从Configuration Manager网站中的其他人中识别它。

    • 说明:指定 ADR 的说明。 说明应概述部署规则和其他相关信息,有助于将规则与其他规则区分开来。 说明字段是可选的,限制为 256 个字符,默认情况下为空值。

    • 模板:选择部署模板以指定是否应用以前保存的 ADR 配置。 配置一个部署模板,其中包含可在创建其他 ADR 时使用的多个常见更新部署属性。 这些模板可节省时间,并有助于确保类似部署之间的一致性。 从以下内置软件更新部署模板之一中进行选择:

      • 补丁星期二模板提供在每月周期部署软件更新时使用的常见设置。

      • Office 365客户端汇报模板提供在为Microsoft 365 应用版客户端部署更新时使用的常见设置。

        注意

        从 2020 年 4 月 21 日起,Office 365 专业增强版重命名为 Microsoft 365 企业应用版。 如果 ADR 依赖于“Title”属性,则需要从 2020 年 6 月 9 日开始对其进行编辑。 Microsoft 365 Apps Update - Semi-annual Channel Version 1908 for x64 based Edition (Build 11929.50000) 是新游戏的示例。 有关修改游戏更改的 ADR 的详细信息,请参阅更新Microsoft 365 应用版的通道。 有关名称更改的详细信息,请参阅Office 365 专业增强版的名称更改

      • SCEP 和 Windows Defender 防病毒汇报模板提供在部署 Endpoint Protection 定义更新时使用的常见设置。

    • 集合:指定要用于部署的目标集合。 集合的成员接收部署中定义的软件更新。

    • 决定是将软件更新添加到新的软件更新组还是现有软件更新组。 在大多数情况下,选择在 ADR 运行时创建新的软件更新组。 如果规则按更积极的计划运行,则可以选择使用现有组。 例如,如果每天针对定义更新运行规则,则可以将软件更新添加到现有软件更新组。

    • 运行此规则后启用部署:指定是否在 ADR 运行后启用软件更新部署。 对于此设置,请考虑以下选项:

      • 启用部署时,符合规则定义条件的更新将添加到软件更新组。 根据需要下载软件更新内容。 内容将复制到指定的分发点,并将更新部署到目标集合中的客户端。

      • 如果未启用部署,则满足规则定义条件的更新将添加到软件更新组。 软件更新部署内容会根据需要下载并分发到指定的分发点。 站点在软件更新组上创建禁用的部署,以防止将更新部署到客户端。 此选项提供时间来准备部署更新,验证满足条件的更新是否足够,然后启用部署。

  4. “部署设置” 页上,配置以下设置:

    • 部署类型:从版本 2107 开始,可以指定软件更新部署的部署类型。 在版本 2107 之前,需要自动部署规则创建的所有部署。

      • 选择“ 必需 ”以创建必需的软件更新部署。 软件更新会在配置的安装截止时间之前自动安装在客户端上。

      • 选择“ 可用 ”以创建可选的软件更新部署。 用户可以从软件中心安装此部署。

      注意

      从 Configuration Manager 版本 2203 开始,可以为“可用部署”选择此部署的“预下载内容”设置。 此设置可缩短客户端的安装等待时间,因为安装通知在内容完全下载后才会在软件中心显示。

      • 如果某个更新位于客户端的多个部署中,并且为至少一个 部署启用了此部署的预下载内容 设置,则该内容将预下载。
      • 如果编辑现有部署以使用此部署设置的 预下载内容 ,则仅当软件更新在客户端上不可用时,内容才会预下载。
    • 使用 LAN 唤醒唤醒为所需部署唤醒客户端:指定是否在截止时间启用 LAN 唤醒。 LAN 唤醒将唤醒数据包发送到部署中需要一个或多个软件更新的计算机。 站点会在安装截止时间唤醒处于睡眠模式的任何计算机,以便可以启动安装。 在部署中不需要任何软件更新的处于睡眠模式的客户端不会启动。 默认情况下,此设置未启用。 使用此选项之前,请为 LAN 唤醒配置计算机和网络。 有关详细信息,请参阅 如何配置 LAN 唤醒

    • 详细信息级别:指定客户端报告的更新强制状态消息的详细信息级别。

      重要

      • 部署定义更新时,请将详细信息级别设置为 “仅错误” ,让客户端仅在定义更新失败时报告状态消息。 否则,客户端会报告大量可能影响站点服务器性能的状态消息。
        “仅错误”详细信息级别不会发送跟踪挂起的重新启动所需的强制状态消息。
    • 许可条款设置:指定是否使用关联的许可条款自动部署软件更新。 某些软件更新包括许可条款。 自动部署软件更新时,不会显示许可条款,并且没有接受许可条款的选项。 选择自动部署所有软件更新,而不考虑关联的许可条款,或仅部署没有关联许可条款的更新。

      • 若要查看软件更新的许可条款,请在“软件库”工作区的“所有软件汇报”节点中选择软件更新。 在功能区中,单击“ 查看许可证”。

      • 若要查找具有关联许可条款的软件更新,请将“许可条款”列添加到“所有软件汇报”节点的结果窗格中。 单击列的标题,按带有许可条款的软件更新进行排序。

  5. 在“软件汇报”页上,配置 ADR 检索并添加到软件更新组的软件更新的条件。

    • ADR 中软件更新的限制为 1000 个软件更新。

    • 如果需要,请在自动部署规则中筛选软件更新的内容大小。 有关详细信息,请参阅在下层操作系统上Configuration Manager和简化的 Windows 服务

    • 从版本 2111 开始,在 “发布日期”或“修订日期” 搜索条件中添加了以下选项:

      • 超过 30 天
      • 超过 60 天
      • 超过 90 天
      • 超过 6 个月
      • 超过 1 年
    • 可以将 Deployed 用作自动部署规则的更新筛选器。 此筛选器可帮助识别可能需要部署到试点或测试集合的新更新。 软件更新筛选器还有助于避免重新部署较旧的更新。

      • Deployed 用作筛选器时,请注意,你可能已将更新部署到另一个集合,例如试点集合或测试集合。
    • 体系结构的属性筛选器现已可用。 使用此筛选器可排除不太常见的体系结构,例如 Itanium 和 ARM64。 请记住,有 32 位 (x86) 应用程序和组件在 64 位 (x64) 系统上运行。 除非确定不需要 x86,否则请在选择 x64 时启用它。

  6. 在“ 评估计划” 页上,指定是否允许 ADR 按计划运行。 启用后,单击“ 自定义 ”以设置定期计划。

    • 计划的开始时间配置基于运行 Configuration Manager 控制台的计算机的本地时间。

    • ADR 评估每天可以运行三次。

    • 切勿将评估计划设置为超过软件更新同步计划的频率。 此页显示软件更新点同步计划,以帮助你确定评估计划频率。

    • 若要手动运行 ADR,请在控制台的“ 自动部署规则”节点中选择该规则 ,然后单击功能区中的“ 立即运行 ”。

    • ADR 可以计划为评估与基准日之间的偏移量。 例如,如果补丁星期二实际位于星期三,请将每月第二个星期二的评估计划设置为一天。

      • 当计划评估的偏移量在当月的最后一周时,如果选择的偏移量将持续到下一个月,则站点将计划评估月份的最后一天。
        ADR 自定义评估计划与基准日偏移
  7. 在“ 部署计划 ”页上,配置以下设置:

    • 计划评估:指定Configuration Manager评估可用时间和安装截止时间的时间。 选择使用协调世界时 (UTC) 或运行 Configuration Manager 控制台的计算机的本地时间。

      • 在此处选择“客户端本地时间”,并为“软件可用时间”选择“尽快”时,运行Configuration Manager控制台的计算机上的当前时间将用于评估更新何时可用。 此行为与 安装截止时间 和客户端上安装更新的时间相同。 如果客户端位于不同的时区,则当客户端的时间达到评估时间时,将发生这些操作。
    • 软件可用时间:选择以下设置之一以指定软件更新何时可供客户端使用:

      • 尽快:使部署中的软件更新尽快可供客户端使用。 选择此设置创建部署时,Configuration Manager更新客户端策略。 在下一个客户端策略轮询周期中,客户端会注意到部署,并且软件更新可供安装。

      • 特定时间:使部署中包含的软件更新在特定日期和时间可供客户端使用。 在启用此设置的情况下创建部署时,Configuration Manager更新客户端策略。 在下一个客户端策略轮询周期中,客户端会意识到部署。 但是,部署中的软件更新在配置的日期和时间之后才可用于安装。

      注意

      从版本 2203 开始,ADR 创建的部署的软件可用时间和安装截止时间现在根据 ADR 评估的计划和启动时间进行计算。 以前,这些时间是根据 ADR 评估完成的时间计算的。 此更改使软件的可用时间和安装截止时间一致且可预测部署。

    • 安装截止时间:这些选项仅适用于 所需 部署。 选择以下设置之一,指定部署中软件更新的安装截止时间:

      • 尽快:选择此设置可尽快在部署中自动安装软件更新。

      • 特定时间:选择此设置可在部署中在特定日期和时间自动安装软件更新。 Configuration Manager通过将配置的特定时间间隔添加到软件可用时间来确定安装软件更新的截止时间。

        • 实际安装截止时间是显示的截止时间加上随机时间,最长为两小时。 随机化可减少集合中客户端同时在部署中安装更新的潜在影响。

        • “在计算机代理”组中禁用截止时间随机化不会覆盖随机化行为。 有关详细信息,请参阅 计算机代理客户端设置

      注意

      从版本 2203 开始,ADR 创建的部署的软件可用时间和安装截止时间现在根据 ADR 评估的计划和启动时间进行计算。 以前,这些时间是根据 ADR 评估完成的时间计算的。 此更改使软件的可用时间和安装截止时间一致且可预测部署。

    • 根据用户首选项延迟执行此部署,最长为客户端设置中定义的宽限期:启用此设置可为用户提供更多时间在截止时间之后安装所需的软件更新。

      • 当计算机长时间关闭并且需要安装许多软件更新或应用程序时,通常需要此行为。 例如,当用户从假期返回时,在客户端安装过期的部署时,他们必须等待很长时间。

      • 在客户端设置中,使用属性“ 宽限期”配置此宽限期,以便在部署截止时间 () 小时后强制实施 。 有关详细信息,请参阅 计算机代理 部分。 强制宽限期适用于启用此选项的所有部署,并且针对你还向其部署了客户端设置的设备。

      • 在截止时间之后,客户端会在用户配置的第一个非业务窗口中安装软件更新,最长可在此宽限期内。 但是,用户仍可以随时打开软件中心并安装软件更新。 宽限期到期后,强制将恢复为过期部署的正常行为。

  8. “用户体验 ”页上,配置以下设置:

    • 用户通知:指定是否在配置 的软件可用时间在软件中心显示通知。 此设置还控制是否通知客户端上的用户。

    • 截止时间行为:此设置仅可配置为 所需 部署。 指定软件更新部署在任何定义的维护时段之外达到截止时间时的行为。 选项包括是否安装软件更新,以及是否在安装后执行系统重启。 有关维护时段的详细信息,请参阅 如何使用维护时段

      注意

      仅当为客户端设备配置了维护时段时,这才适用。 如果未在设备上定义维护时段,则安装更新和重启将始终在截止时间之后进行。

    • 设备重启行为:此设置仅可配置为 “所需 部署”。 指定如果需要重启才能完成更新安装,则是否禁止在服务器和工作站上取消系统重启。

      警告

      在服务器环境或你不希望目标计算机默认重启时,取消系统重启可能很有用。 但是,这样做会使计算机处于不安全状态。 允许强制重启有助于确保立即完成软件更新安装。

    • Windows Embedded 设备的写入筛选器处理:此设置控制使用写入筛选器启用的 Windows Embedded 设备上的安装行为。 选择在安装截止时间或维护时段内提交更改的选项。 选择此选项时,需要重启,并且更改将保留在设备上。 否则,将安装更新,应用于临时覆盖层,并在稍后提交。

      • 将软件更新部署到 Windows Embedded 设备时,请确保设备是具有配置维护时段的集合的成员。
    • 重启时的软件更新部署重新评估行为:选择此设置可将软件更新部署配置为让客户端在客户端安装软件更新并重启后立即运行软件更新符合性扫描。 此设置使客户端能够检查客户端重启后变得适用的其他更新,然后在同一维护时段内安装它们。

  9. “警报”页上,配置Configuration Manager为此部署生成警报的方式。 在“软件库”工作区的“软件汇报”节点中查看来自Configuration Manager的最新软件更新警报。 如果还使用 System Center Operations Manager,请配置其警报。

  10. “下载设置” 页上,配置以下设置:

    • 指定客户端使用来自邻居或默认站点边界组的分发点时是否应下载并安装更新。

    • 指定当软件更新的内容从当前或相邻边界组中的分发点不可用时,客户端是否应从站点默认边界组中的分发点下载并安装更新。

    • 允许客户端与同一子网上的其他客户端共享内容:指定是否启用对内容下载使用 BranchCache。 有关详细信息,请参阅 BranchCache。 BranchCache 始终在客户端上启用。 此设置已删除,因为客户端使用 BranchCache(如果分发点支持)。

    • 如果软件更新在当前、相邻或站点边界组中的分发点上不可用,请从 Microsoft 汇报下载内容:如果分发点上没有可用的更新,则选择此设置可让连接到 Intranet 的客户端从 Microsoft 更新下载软件更新。 基于 Internet 的客户端始终转到 Microsoft 更新以获取软件更新内容。

    • 指定在客户端使用按流量计费的 Internet 连接时是否允许在安装截止时间之后下载。 Internet 提供商有时会按你使用按流量计费的连接时发送和接收的数据量收费。

    注意

    客户端从部署中的软件更新的管理点请求内容位置。 下载行为取决于你在此页上配置分发点、部署包和设置的方式。

  11. 在“ 部署包 ”页上,选择以下选项之一:

    • 选择部署包:将这些更新添加到现有部署包。

    • 创建新的部署包:将这些更新添加到新的部署包。 配置以下附加设置:

      • 名称:指定部署包的名称。 使用描述包内容的唯一名称。 限制为 50 个字符。

      • 说明:指定提供有关部署包的信息的说明。 可选说明限制为 127 个字符。

      • 包源:指定软件更新源文件的位置。 键入源位置的网络路径,例如 , \\server\sharename\path或单击“ 浏览 ”查找网络位置。 在继续下一页之前,为部署包源文件创建共享文件夹。

        • 不能将指定位置用作另一个软件部署包的源。

        • Configuration Manager创建部署包后,可以在部署包属性中更改包源位置。 如果这样做,请先将内容从原始包源复制到新的包源位置。

        • SMS 提供程序的计算机帐户和运行向导以下载软件更新的用户都必须对下载位置具有 写入 权限。 限制对下载位置的访问。 此限制可降低攻击者篡改软件更新源文件的风险。

      • 发送优先级:指定部署包的发送优先级。 Configuration Manager在将包发送到分发点时使用此优先级。 部署包按优先级顺序发送:高、中或低。 具有相同优先级的包按创建顺序发送。 如果没有积压工作,包将立即处理,而不考虑其优先级。

      • 启用二进制差异复制:启用此设置以对部署包使用二进制差异复制。 有关详细信息,请参阅 二进制差异复制

    • 无部署包:将软件更新部署到设备,而无需先下载内容并将其分发到分发点。 此设置在处理非常大的更新内容时非常有用。 如果始终希望客户端从 Microsoft 更新云服务中获取内容,也请使用它。 此方案中的客户端还可以从已有必要内容的对等方下载内容。 Configuration Manager客户端继续管理内容下载,因此可以利用Configuration Manager对等缓存功能或其他技术(如传递优化)。 此功能支持Configuration Manager软件更新管理支持的任何更新类型,包括 Windows 和 Microsoft 365 应用版 更新。

      注意

      选择此选项并应用设置后,将无法再更改它。 其他选项灰显。

  12. 在“ 分发点 ”页上,指定要托管软件更新文件的分发点或分发点组。 有关分发点的详细信息,请参阅 分发点配置。 仅当创建新的软件更新部署包时,此页面才可用。

  13. “下载位置 ”页上,指定是从 Internet 还是从本地网络下载软件更新文件。 配置以下设置:

    • 从 Internet 下载软件更新:选择此设置可从 Internet 上的指定位置下载软件更新。 默认启用此设置。

    • 从本地网络上的位置下载软件更新:选择此设置可从本地目录或共享文件夹下载软件更新。 当运行向导的计算机无法访问 Internet 时,此设置非常有用。 任何可访问 Internet 的计算机都可以初步下载软件更新。 然后将它们存储在本地网络上可从运行向导的计算机访问的位置。 另一种情况可能是下载通过 System Center 汇报 Publisher 或第三方修补解决方案发布的内容。 可以将顶级软件更新点上的 WSUS 内容共享输入为要从中下载的网络位置,例如 \\server\WsusContent

  14. 在“ 语言选择” 页上,选择网站为其下载所选软件更新的语言。 仅当这些更新以所选语言提供时,网站才会下载这些更新。 始终下载非特定于语言的软件更新。 默认情况下,向导选择你在软件更新点属性中配置的语言。 在继续下一页之前,必须至少选择一种语言。 如果仅选择软件更新不支持的语言,则更新的下载将失败。

  15. “摘要 ”页上,查看设置。 若要将设置保存到部署模板,请单击“ 另存为模板”。 输入名称并选择要包含在模板中的设置,然后单击“ 保存”。 若要更改配置的设置,请单击关联的向导页并更改设置。

    • 模板名称可以包含字母数字 ASCII 字符以及 \ (反斜杠) 或 ' (单引号) 。
  16. 单击“ 下一步 ”创建 ADR。

完成向导后,ADR 将运行。 它将满足指定条件的软件更新添加到软件更新组。 然后,ADR 会将更新下载到站点服务器上的内容库,并将其分发到配置的分发点。 然后,ADR 将软件更新组部署到目标集合中的客户端。

将新部署添加到现有 ADR

创建 ADR 后,将其他部署添加到规则。 此操作有助于管理将不同更新部署到不同集合的复杂性。 每个新部署都具有完整的功能和部署监视体验。

将新部署添加到现有 ADR 的过程

  1. 在Configuration Manager控制台中,转到“软件库”工作区,展开“软件汇报”,选择“自动部署规则”节点,然后选择所需的规则。

  2. 在功能区中,单击“ 添加部署”。

  3. 在“添加部署向导”的“ 集合 ”页上,配置可用设置,类似于“创建自动部署规则向导”的“ 常规 ”页。 有关详细信息,请参阅有关 创建 ADR 的过程的上一部分。 “添加部署向导”的其余部分包括以下页面,这些页面也与上述详细说明相匹配:

    • 部署设置
    • 部署计划
    • 用户体验
    • 警报
    • 下载设置

还可以使用 Windows PowerShell cmdlet 以编程方式添加部署。 有关使用此方法的完整说明,请参阅 New-CMSoftwareUpdateDeployment

有关部署过程的详细信息,请参阅 软件更新部署过程

为自动部署规则创建文件夹的过程

(从版本 2207) 开始

  1. 在Configuration Manager控制台中,转到“软件库”工作区,然后转到“自动部署规则”。

  2. 在功能区或右键单击菜单中,在“自动部署规则”中选择以下选项:

    • 创建文件夹
    • 删除文件夹
    • 重命名文件夹
    • 移动文件夹
    • 设置安全作用域

还可以使用 Windows PowerShell cmdlet 以编程方式添加文件夹创建。 有关使用此方法的完整说明,请参阅

已知问题

错误代码0x87D20417

场景:运行 Configuration Manager 版本 2010 时,你可能会注意到自动部署规则失败,并返回 0x87D20417 的最后错误代码。 在 PatchDownloader.log 中,可以看到 Failed to create temp file with GetTempFileName() at temp location C:\Windows\TEMP\, error 80 %temp% 目录中的 和 0 字节文件。

解决 方案:PatchDownloader.log 中指定的临时目录中删除所有文件,然后重新运行 ADR。

分辨率:安装 KB 4600089,Microsoft Endpoint 更新汇总Configuration Manager current Branch 版本 2010。

为自动部署规则应用部署包设置的脚本

如果使用 “无部署包 ”选项创建 ADR,则无法稍后返回并添加一个。 为了帮助你解决此问题,我们已将以下脚本上传到 社区中心

提示

直接在社区中心打开此脚本。 有关详细信息,请参阅 指向社区中心项目的直接链接

<# Apply-ADRDeploymentPackageSettings #>

#=============================================
# START SCRIPT
#=============================================
param
(
[parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[ValidateLength(1,256)]
[string]$sourceADRName,

[parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[ValidateLength(1,256)]
[string]$targetADRName
)

Try {
       # Source ADR that already has the needed deployment package. You may need to create one if it doesn’t exist.
       $sourceADR = Get-CMSoftwareUpdateAutoDeploymentRule -Name $sourceADRName

       # Target ADR that will be updated to use the source ADR’s deployment package. Typically, this is the ADR that used the “No deployment package” option. 
       $targetADR = Get-CMSoftwareUpdateAutoDeploymentRule -Name $targetADRName

       # Apply the deployment package settings
       $targetADR.ContentTemplate = $sourceADR.ContentTemplate

       # Update the wmi object
       $targetADR.Put()
}
Catch{
       $exceptionDetails = "Exception: " + $_.Exception.Message + "HResult: " + $_.Exception.HResult
       Write-Error "Failed to apply ADR deployment package settings: $exceptionDetails"
}
#=============================================
# END SCRIPT
#=============================================

后续步骤

监视软件更新