Home > Declarative Device Management, Jamf Pro Blueprints, Mac administration, macOS > Reading DDM-managed Apple Software Update settings from the command line on macOS Tahoe 26.2.0
One of the challenges with reporting on DDM settings is that as of macOS Tahoe 26.2.0 there aren’t currently command line tools available which can report back on settings which are managed via DDM declarations. You can see the settings which have been applied on the managed Mac via System Settings, but so far that’s about it. However, in some cases, Apple is writing information for some DDM declarations to files which are readable by command line tools. I recently discovered that one of those declarations was the com.apple.configuration.softwareupdate.settings Software Update Settings declaration. For more details, please see below the jump.
I have an earlier post on the Software Update Settings declaration and how it is used by Jamf Pro’s Blueprints. Using that information, I built and deployed a Software Update Settings declaration which has the following settings:
Once deployed to managed Macs, you should be able to verify these settings by looking at the Software Update Settings declaration’s listing in System Settings.

You can also verify them by checking the following file:
/var/db/softwareupdate/SoftwareUpdateDDMStatePersistence.plist
On a managed Mac with those DDM settings running macOS Tahoe 26.2.0, the SoftwareUpdateDDMStatePersistence.plist file should show information similar to what’s shown below:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?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> |
From there, you can use tools like PlistBuddy to read the values stored in the /var/db/softwareupdate/SoftwareUpdateDDMStatePersistence.plist file. For example, the following command should read the value for the enableRapidSecurityResponse key from the SoftwareUpdateDDMStatePersistence.plist file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /usr/libexec/PlistBuddy -c "Print :SUCorePersistedStatePolicyFields:SUCoreDDMDeclarationGlobalSettings:enableRapidSecurityResponse" /var/db/softwareupdate/SoftwareUpdateDDMStatePersistence.plist |
If Rapid Security Response updates are set to be installed, that should give you a value of true:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| username@Z6WCW076MR ~ % /usr/libexec/PlistBuddy -c "Print :SUCorePersistedStatePolicyFields:SUCoreDDMDeclarationGlobalSettings:enableRapidSecurityResponse" /var/db/softwareupdate/SoftwareUpdateDDMStatePersistence.plist | |
| true | |
| username@Z6WCW076MR ~ % |
To the best of my knowledge, this method of verification is undocumented by Apple and they could choose to change it at any time. That said, if you’re looking for a way to report on Software Update Settings declaration settings, this is a way to do it as of macOS Tahoe 26.2.0.