适用于设备更新的移动设备管理 (MDM)
提示
如果你不是开发人员或管理员,则可以在 Windows 更新:常见问题解答中找到更多有用的信息。
在电脑、平板电脑、手机和 IoT 设备中,移动设备管理 (MDM) 解决方案正逐渐成为流行的轻型设备管理技术。 在 Windows 中,我们在扩展 MM 可用的管理功能方面投入了大量资金。 我们新增的一项关键功能是,MDM 能够使用最新的 Microsoft 更新使设备保持最新状态。
特别是,Windows 提供了 API,使 MMM 能够:
- 通过配置“自动更新”策略,确保计算机保持最新状态。
- 通过为给定设备配置批准的更新,在一小组计算机上进行测试。 然后,执行企业范围的推出。
- 获取托管设备的符合性状态。 IT 人员可以了解哪些计算机仍需要安全修补程序,或特定计算机的当前状态。
- 配置自动更新策略以确保设备保持最新。
- 获取设备合规性信息(需要但尚未安装的更新的列表)。
- 输入每设备更新审批列表。 该列表确保设备仅安装已批准和测试的更新。
- 批准最终用户的最终用户许可协议 (EULA),以便即使使用 EULA 进行更新,也可自动执行更新部署。
本文向独立软件发布者 (ISV) 提供在 Windows 中实现更新管理所需的信息。 有关详细信息,请参阅 策略 CSP - 更新。
注意
用于指定“更新批准”和“获取合规性状态”的 OMA DM API 是指通过使用更新 ID 进行的更新。 更新 ID 是标识特定更新的 GUID。 MDM 需要显示有关更新的 IT 友好信息,而不是原始 GUID,包括更新的标题、说明、KB、更新类型(如安全更新或服务包)。 有关详细信息,请参阅 [MS-WSUSSS]:Windows Update Services: Server-Server 协议。
下图提供了有关其工作原理的概念性概述:
该图表大致可分为三部分:
- 设备管理服务使用服务器-服务器同步协议(图表顶部)从 Microsoft 更新网站同步更新信息(标题、说明、适用性)。
- 设备管理服务可设置自动更新策略、获取更新合规性信息,并通过 OMA DM(图表左侧部分)设置审批。
- 设备使用客户端/服务器协议从 Microsoft 更新获取更新。 它仅下载并安装应用到设备并经 IT 批准的更新(关系图的右侧部分)。
使用服务器-服务器同步协议获取更新元数据
Microsoft 更新目录包含许多 MDM 托管设备不需要的更新。 它包括旧软件的更新,例如服务器更新、下层桌面操作系统和旧版应用和大量驱动程序。 建议 MDM 使用服务器-服务器同步协议获取客户端报告的更新的更新元数据。
本部分介绍此设置。 下图显示了服务器-服务器同步协议流程。
MSDN 提供许多有关服务器-服务器同步协议的信息。 具体而言:
- 它是一个基于 SOAP 的协议,你可以在服务器同步 Web 服务中获取 WSDL。 WSDL 可用于为许多编程环境生成调用代理,以简化开发。
- 可以在协议示例中找到代码示例。 示例代码显示可以使用的原始 SOAP 命令。 尽管从 .NET 等编程语言进行调用更简单 () 调用 WSDL 生成的代理。 服务器同步 WSDL 生成的存根会生成不正确的绑定 URL。 绑定 URL 应设置为
https://fe2.update.microsoft.com/v6/ServerSyncWebService/serversyncwebservice.asmx
。
一些要点:
- 该协议有一个授权阶段(调用 GetAuthConfig、GetAuthorizationCookie 和 GetCookie)。 在协议示例中,示例1:授权 代码显示了执行授权的方式。 尽管这称为授权阶段,但协议已完全打开(无需凭据即可运行此协议阶段)。 需要执行此调用顺序,以便为同步协议的主要部分获取 Cookie。 作为优化,你可以缓存 Cookie,并仅在 Cookie 过期的情况下再次调用此序列。
- 该协议可通过调用 GetUpdateData 同步特定更新的更新元数据。 有关详细信息,请参阅 MSDN 中的 GetUpdateData。 LocURI 将获取修订版本号为
<LocURI>./Vendor/MSFT/Update/InstallableUpdates?list=StructData</LocURI>
的适用更新。 由于并非所有更新都可通过 S2S 同步获得,因此请确保处理 SOAP 错误。 - 对于移动设备,可以通过调用 GetUpdateData 来同步特定更新的元数据。 或者,对于本地解决方案,可以使用 Windows Server Update Services (WSUS) 并从 Microsoft 更新目录站点手动导入移动更新。 有关详细信息,请参阅服务器同步过程的流程图和屏幕截图。
注意
随着时间的推移,Microsoft更新会修改给定更新的元数据,例如,通过更新描述性信息、修复适用性规则中的 bug、进行本地化更改等。 每次发生不影响更新本身的更改时,都会创建新的更新修订。 UpdateID (GUID) 和 RevisionNumber (int) 复合以构成更新修订的标识密钥。 MDM 不会向 IT 提供更新修订。 相反,对于每个 UpdateID (GUID) MDM 会保留该更新的后续修订的元数据,后者是具有最高修订号的更新。
更新元数据 XML 结构和元素说明的示例
GetUpdateData 调用的响应会返回 ServerSyncUpdateData 数组,其中包含 XmlUpdateBlob 元素中的更新元数据。 更新 xml 的架构在协议示例中提供。 此处介绍了一些关键元素:
- UpdateID - 更新的唯一标识符
- RevisionNumber - 修改更新的修订号。
- CreationDate - 创建此更新的日期。
-
UpdateType - 更新的类型,可能包括以下内容:
- Detectoid - 如果此更新标识表示兼容性逻辑
-
Category - 此元素可以表示以下任一项:
- 更新所属的产品类别。 例如,Windows、MS Office 等。
- 更新所属的分类。 例如,驱动程序、安全性等。
- 软件 - 如果更新是软件更新,
- 驱动程序 - 如果更新是驱动程序更新,则为驱动程序更新。
-
LocalizedProperties - 表示更新可用的语言、更新的标题和说明。 它包含以下字段:
- 语言 - LCID) (语言代码标识符。 例如,en 或 es。
- 标题 - 更新的标题。 例如,“Windows SharePoint Services 3.0 Service Pack 3 x64 Edition (KB2526305) ”
- 说明 - 更新的说明。 例如,“Windows SharePoint Services 3.0 Service Pack 3 (KB2526305) 提供了 Windows SharePoint Services 3.0 的最新更新。 安装此项目之后,可能需要重启计算机。 安装此项后,无法将其删除。”
-
KBArticleID - 此更新的知识库文章编号,其中包含有关特定更新的详细信息。 例如,
https://support.microsoft.com/kb/2902892
。
使用服务器-服务器同步协议的建议流程
本节将介绍使用服务器-服务器同步协议将更新元数据拉取到 MDM 的可能算法。
首先是一些背景信息:
- 如果你有多租户 MDM,则可以将更新元数据保存在共享分区中,因为它对所有租户都是通用的。
- 然后,可以实现元数据同步服务。 该服务定期调用服务器-服务器同步,以提取 IT 所关注的元数据的更新。
- 使用 OMA DM 控制设备的 MDM 组件(在下一节中进行了说明)应向元数据同步服务发送从每个客户端获取的所需更新列表(如果设备还不知道这些更新)。
以下过程介绍了元数据同步服务的基本算法:
- 创建“要出错的所需更新 ID”的空列表。 此列表由使用 OMA DM 的 MDM 服务组件更新。 建议不要将定义更新添加到此列表,因为它们是临时的。 例如,Defender 可能一天发布多个新的定义更新,每个更新都是累积的。
- 定期同步(建议每 2 小时同步一次 - 频率不超过每小时一次)。
这些步骤用于获取有关 IT 人员需要管理的 Microsoft 更新集的信息,以便可以在各种更新管理方案中使用该信息。 例如,在更新审批时,你可以获取信息,以便 IT 人员查看他们正在批准哪些更新。 或者,用于查看需要但尚未安装的更新的符合性报告。
使用 OMA DM 管理更新
MDM 可以通过 OMA DM 管理更新。 移动设备管理记录了有关如何使用 MDM 并将其与 Windows OMA DM 协议集成,以及如何注册适用于 MDM 管理的设备的详细信息。 本节将重点介绍如何扩展该集成以支持更新管理。 更新管理的主要方面包括以下信息:
- 配置自动更新策略以确保设备保持最新。
- 获取设备合规性信息(需要但尚未安装的更新的列表)。
- 指定每设备更新审批列表。 该列表确保设备仅安装已批准和测试的更新。
- 为最终用户批准 EULA,以便可以自动进行更新部署,即使是使用 EULA 进行更新也是如此。
以下列表介绍了用于应用更新的建议模型。
- 具有“测试组”和“所有组”。
- 在“测试”组中,让所有更新流动。
- 在“所有组”中,将质量更新延迟设置为 7 天,然后在 7 天后自动批准质量更新。 质量更新延迟排除定义更新,因此定义更新在可用时自动获得批准。 通过将 Update/DeferQualityUpdatesPeriodInDays 设置为 7,将定义更新的计划与质量更新延迟计划相匹配。 让更新在七天后流动,或者在发生任何问题时暂停。
使用更新 策略 CSP 配置更新。
更新管理用户体验屏幕截图
管理员控制台的以下屏幕截图显示了更新标题、审批状态和其他元数据字段的列表。
SyncML 示例
将Microsoft自动更新设置为通知和延迟。
<SyncML xmlns="SYNCML:SYNCML1.1">
<SyncBody>
<Replace xmlns="">
<CmdID>1</CmdID>
<Item>
<Meta>
<Format>int</Format>
<Type>text/plain</Type>
</Meta>
<Target>
<LocURI>./Vendor/MSFT/Policy/Config/Update/AllowUpdateService</LocURI>
</Target>
<Data>0</Data>
</Item>
<CmdID>2</CmdID>
<Item>
<Meta>
<Format>int</Format>
<Type>text/plain</Type>
</Meta>
<Target>
<LocURI>./Vendor/MSFT/Policy/Config/Update/RequireDeferUpgrade </LocURI>
</Target>
<Data>0</Data>
</Item>
<CmdID>3</CmdID>
<Item>
<Meta>
<Format>int</Format>
<Type>text/plain</Type>
</Meta>
<Target>
<LocURI>./Vendor/MSFT/Policy/Config/Update/RequireUpdateApproval </LocURI>
</Target>
<Data>0</Data>
</Item>
</Replace>
<Final/>
</SyncBody>
</SyncML>
服务器同步过程的流程图和屏幕截图
下图和屏幕截图显示了使用 Windows Server Update Services 和 Microsoft 更新目录的设备更新过程的流程。