macOS Tahoe 26.2.0:从命令行读取DDM管理的Apple软件更新设置

本文介绍了在macOS Tahoe 26.2.0系统中,如何通过命令行读取由声明式设备管理配置的Apple软件更新设置,包括具体的配置文件路径和PlistBuddy工具的使用方法。

从命令行读取DDM管理的Apple软件更新设置(macOS Tahoe 26.2.0)

2025年12月17日

报告DDM设置的一个挑战是,截至macOS Tahoe 26.2.0,目前还没有命令行工具可以报告通过DDM声明进行管理的设置。您可以在受管Mac的“系统设置”中查看已应用的设置,但到目前为止也仅限于此。然而,在某些情况下,Apple会将一些DDM声明的信息写入文件,这些文件可以通过命令行工具读取。我最近发现其中一个声明是 com.apple.configuration.softwareupdate.settings 软件更新设置声明。更多详情请见下文。

我之前有一篇关于软件更新设置声明及其在Jamf Pro蓝图中的使用方法的文章。利用这些信息,我构建并部署了一个包含以下设置的软件更新设置声明:

  • 标准用户无法安装Apple软件更新
  • 已登录用户将看到所有软件更新通知
  • 操作系统更新将自动下载
  • 操作系统更新将自动安装
  • 安全更新将自动安装
  • 将安装快速安全响应更新
  • 可以移除快速安全响应更新

部署到受管Mac后,您应该可以通过查看“系统设置”中软件更新设置声明的列表来验证这些设置。

您还可以通过检查以下文件来验证它们: /var/db/softwareupdate/SoftwareUpdateDDMStatePersistence.plist

在运行macOS Tahoe 26.2.0并应用了这些DDM设置的受管Mac上,SoftwareUpdateDDMStatePersistence.plist 文件应显示类似于下图所示的信息:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>SUCorePersistedStateContentsType</key>
	<string>SoftwareUpdateCorePersistedStateFile</string>
	<key>SUCorePersistedStateCoreFields</key>
	<dict/>
	<key>SUCorePersistedStateCoreSecureCodedObjectsFields</key>
	<dict/>
	<key>SUCorePersistedStateCoreVersion</key>
	<string>2.1.0</string>
	<key>SUCorePersistedStatePolicyFields</key>
	<dict>
		<key>SUCoreDDMDeclarationGlobalSettings</key>
		<dict>
			<key>adminInstallRequired</key>
			<integer>1</integer>
			<key>automaticallyDownload</key>
			<integer>1</integer>
			<key>automaticallyInstallOSUpdates</key>
			<integer>1</integer>
			<key>automaticallyInstallSystemAndSecurityUpdates</key>
			<integer>1</integer>
			<key>enableGlobalNotifications</key>
			<true/>
			<key>enableRapidSecurityResponse</key>
			<true/>
			<key>enableRapidSecurityResponseRollback</key>
			<true/>
			<key>serializedKeys</key>
			<array>
				<string>com.apple.RemoteManagement.SoftwareUpdateExtension.GlobalSettings/811362F1-10F1-4D2F-BFB7-F97393F3F44C:Qmx1ZXByaW50XzM3MTllZWRlLTI0MjUtNGE2ZC04YjljLTIyMGViMzMwYWQ2NF9zMV9jMV9zeXNfY2ZnMQ==.NDg5NTdiNjZkYmUwMWM3YzM2MzcwMTJjNTkxZTg4MWM1ZDk3YTNkMWUxZTI1MjI0NTYwMmJlNjQ0MTFmYjdkOA==</string>
			</array>
		</dict>
	</dict>
	<key>SUCorePersistedStatePolicySecureCodedObjectsFields</key>
	<dict/>
	<key>SUCorePersistedStatePolicyVersion</key>
	<string>1.0</string>
</dict>
</plist>

此后,您可以使用像 PlistBuddy 这样的工具来读取存储在 /var/db/softwareupdate/SoftwareUpdateDDMStatePersistence.plist 文件中的值。例如,以下命令应从 SoftwareUpdateDDMStatePersistence.plist 文件中读取 enableRapidSecurityResponse 键的值。

1
/usr/libexec/PlistBuddy -c "Print :SUCorePersistedStatePolicyFields:SUCoreDDMDeclarationGlobalSettings:enableRapidSecurityResponse" /var/db/softwareupdate/SoftwareUpdateDDMStatePersistence.plist

如果设置了安装快速安全响应更新,该命令应返回 true 值:

1
2
3
username@Z6WCW076MR ~ % /usr/libexec/PlistBuddy -c "Print :SUCorePersistedStatePolicyFields:SUCoreDDMDeclarationGlobalSettings:enableRapidSecurityResponse" /var/db/softwareupdate/SoftwareUpdateDDMStatePersistence.plist
true
username@Z6WCW076MR ~ %

据我所知,这种验证方法并未被Apple记录在案,他们可能随时更改它。也就是说,如果您正在寻找一种报告软件更新设置声明配置的方法,那么在macOS Tahoe 26.2.0中,这是一种可行的方式。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计