To enable this option, there is a /etc/pam.d/sudo_local.template file on macOS Sonoma and later which appears as shown below:
| # sudo_local: local config file which survives system update and is included for sudo | |
| # uncomment following line to enable Touch ID for sudo | |
| #auth sufficient pam_tid.so |
Copying the /etc/pam.d/sudo_local.template file to /etc/pam.d/sudo_local and uncommenting the indicated line allows Touch ID to work as authentication for the sudo tool.
| # sudo_local: local config file which survives system update and is included for sudo | |
| # uncomment following line to enable Touch ID for sudo | |
| auth sufficient pam_tid.so |

A number of Mac admins have written scripts to apply this PAM configuration to Macs, but there didn’t seem to be a good way to handle this without scripting. However, as part of Apple’s unveiling of Declarative Device Management (DDM) at WWDC 2023, Apple announced that DDM management included the ability to manage sets of tamper-resistant system configuration files for different system services. As of this date, the following services built into macOS can be managed this way:
Jamf Pro’s Blueprints supports managing these services via the Service configuration files component. Since enabling Touch ID authentication for sudo is managed using a PAM configuration file, that means that enabling Touch ID authentication for the sudo tool can be accomplished via Blueprints. For more details, please see below the jump.
By default, macOS Tahoe 26.1 ships with a /etc/pam.d/sudo_local.template file that looks like this:
| # sudo_local: local config file which survives system update and is included for sudo | |
| # uncomment following line to enable Touch ID for sudo | |
| #auth sufficient pam_tid.so |
To prepare the desired PAM configuration, you can use the process described below:
The newly-created sudo_local file should appear similar to what’s shown below:
| # sudo_local: local config file which survives system update and is included for sudo | |
| # uncomment following line to enable Touch ID for sudo | |
| auth sufficient pam_tid.so |
To deploy this change with Blueprints, three things are needed.
1. A zip file which contains both the directory and file structure of the configuration file in question.
The PAM configuration file is stored in the /etc directory, with a directory inside named pam.d, with a file inside the pam.d directory named sudo_local, so a zip file containing a directory named etc, with a directory inside named pam.d, with a file inside the pam.d directory named sudo_local, is needed for this.

For this example, we’ll name the zip file as enable_touch_id_for_sudo.zip.

2. The SHA-256 hash of the zip file
You can use the sha256sum command line tool to get the SHA-256 hash of the zip file, so using a command similar to the one shown below should provide that information:
| sha256sum /path/to/enable_touch_id_for_sudo.zip |
Assuming our SHA-256 hash is 0ac032ffc0d173ec102ee2d580de2c7511ab59606a56239b8c9a0fd88452c368, you should see output like this when you run the command above:
| username@ZPVVQN9WPH ~ % sha256sum /Users/username/Desktop/sudoers_configuration.zip | |
| 0ac032ffc0d173ec102ee2d580de2c7511ab59606a56239b8c9a0fd88452c368 /Users/username/Desktop/sudoers_configuration.zip | |
| username@ZPVVQN9WPH ~ % |
3. A place to download the zip file from which allows downloading without authentication.
For this example, I’ve set up an S3 bucket in Amazon Web Services named 75d831079efb4d02ada44eed4f8ae093 and set the enable_touch_id_for_sudo.zip file to be publicly accessible from that S3 bucket.
Once I have all the above available, I can set up a Blueprint in Jamf Pro to deploy the Touch ID PAM configuration file as a Service configuration file.
1. Log into Jamf Pro.
2. Select Blueprints
3. Click on Service configuration.

4. Give it a name when prompted. For this example, I’m using Touch ID PAM Configuration.

5. Select a Jamf Pro smart or static group. For this example, I’m selecting a static group named Touch ID PAM Configuration Deployment Group.

6. Provide the necessary information to download the enable_touch_id_for_sudo.zip file. For this example, the following information is being used:

Once everything has been configured, click the Deploy button to deploy the changes to the Macs you want to manage.

Once deployed, the Blueprints screen in Jamf Pro should show the newly-created Touch ID PAM Configuration Blueprint as being deployed.

On your managed devices, you can verify that the new Touch ID PAM configuration has been deployed by clicking on the enrollment profile, then scrolling to the bottom. You should see a Device Declarations section, with a listing for Configuration Files: com.apple.pam.

If you click on the Configuration Files: com.apple.pam listing, it should provide the path to the tamper-resistant directory where it stored the new Touch ID PAM configuration file. This should be the following location:
/private/var/db/ManagedConfigurationFiles/com.apple.pam

Inside that directory will be the etc directory with a directory inside named pam.d, with a file inside the pam.d directory named sudo_local file that you configured for the Blueprint’s zip file. The complete file path to the new Touch ID PAM configuration should be the following:
/private/var/db/ManagedConfigurationFiles/com.apple.pam/etc/pam.d/sudo_local
You will not be able to write to this location, as it is protected by System Integrity Protection (SIP), but you should be able to read from the file and verify the contents are what’s expected.
You should also be able to verify that Touch ID authentication is now working when you use the sudo command line tool.


Hat tip to my colleague Matt Vlasach for coming up with and sharing this idea of enabling Touch ID authentication for sudo using Blueprints.
]]>For those interested, all of the the JNUC 2025 session videos are available on YouTube, though it doesn’t appear that there’s a dedicated YouTube playlist at this point. For convenience, I’ve linked my session here.
]]>Previously, the only option for deploying software update declarations via Blueprints was to specify an individual OS version. Now there is a new option for upgrading the OS version to the latest version a particular Mac can support.
For those familiar with Jamf Pro’s managed software update functionality, the new software update declaration functionality provides the following update options:

The Latest version based on device eligibility functionality in the managed software update functionality tells the managed Mac to download and install the latest version of macOS that a particular Mac can support. The Blueprints software update declaration functionality provides that same experience, where you can do the following:
For more details, please see below the jump.
For this example, I have the goal of updating managed Macs to the latest available version of macOS. As of November 6 2025, that is the following version of macOS:
I want to have them all updated within one day of the release of new OS versions, with the install time set as being 6:00 PM (18:00)
I can set up a Blueprint in Jamf Pro to deploy a software update declaration to enforce this using the following procedure:
1. Log into Jamf Pro.
2. Select Blueprints
3. Click on Update software to latest version.

4. Give it a name when prompted. For this example, I’m using Update to latest macOS version.

5. Select a Jamf Pro smart or static group. For this example, I’m selecting a static group named Managed Software Update Deployment Group.

6. In the Software Updates section, I’m choosing the following settings:
7. Once all the information has been entered and verified to be correct, click the Save button.

8. Click the Deploy button to deploy the changes to the Macs you want to manage.

Note: The days after release refers to the date that the latest version was released. In the case of macOS 26.1, that was on the following date:
By setting the Days after release to enforce update setting to 1 day, that means that Macs receiving this software update declarations will have this deadline to install macOS 26.1:
Devices receiving the Blueprint will detect that they are past the deadline set by the software update declaration if the Blueprint is being deployed on the following date:
In this case, the Mac will try to update as soon as possible and provide notifications that it is past the deadline for updating.

Once deployed, the Blueprints screen in Jamf Pro should show the newly-created Update to latest macOS version Blueprint as being deployed.

Note: The options available via Blueprints for software declarations are the ones Apple has specified for software update declarations. For more information about this topic, please see the following link:
On your managed devices, you can verify that the new service background task configuration has been deployed by clicking on the enrollment profile, then scrolling to the bottom. In the case of this example, you should see a Device Declarations section with a listing for Required Software Update. The Required Software Update listing will include the OS version number for the required update.

If you click on that listing, you should see the details of the software update declaration. In this case, since the latest available version of macOS is 26.1, that’s what is listed as part of the software update declaration.

From the user’s perspective, they should see a Notifications center notification appear with two available options:
When you click the Details button, you should see behavior similar to what’s shown below:
When you click the Update button, you should see behavior similar to what’s shown below:
Note: The video above has been edited to artificially reduce the amount of time the OS update took to run. Run time of the pre-edited video was 12 minutes 33 seconds.
]]>

I built a macOS 26.0.1 VM and saw the serial number appear.

I then upgraded the VM from macOS 26.0.1 to macOS 26.1.0. Poof, no more serial number.

After talking with colleagues in the Mac Admins Slack, I was pointed to a Known Issues entry for Virtualization in the macOS 26.1.0 release notes:
The serial number published for the virtual machine is 0, which prevents iCloud and related applications from functioning correctly. (163294564)

You can’t set a system serial number manually for macOS VMs running on Apple Silicon Macs, so it looks like this state of affairs is with us until Apple fixes it. Hopefully that is soon.
]]>There is an alternative way to get this information though, as it is also available via the System Information app included with macOS. This information should be available regardless of whether the MDM-managed user account is logged in or not. For more details, please see below the jump.
In the System Information app, you can access information about the MDM-managed user account by selecting the Profiles section, then clicking on the MDM Profile listing. If this Mac has an MDM-managed user account, it should be listed as Managed User in the Other Info section at the end of the MDM Profile listing’s information.
In place of listing the account’s username, the Managed User information provides two items of information:

This information can also be obtained using the system_profiler command line tool, where you should only need the account’s assigned UUID identifier in order to identify the account.
To get the UUID identifier information using the system_profiler tool, the following command can be run:
| /usr/sbin/system_profiler SPConfigurationProfileDataType | grep "Managed User" | sed -E 's/.* ([0-9A-F-]{36}) .*/\1/' |
Running this command should provide output similar that shown below:
| username@ZWD3QRQYG2 ~ % /usr/sbin/system_profiler SPConfigurationProfileDataType | grep "Managed User" | sed -E 's/.* ([0-9A-F-]{36}) .*/\1/' | |
| 88B48FCB-E137-4D9F-B4E9-7806396ACED7 | |
| username@ZWD3QRQYG2 ~ % |

To get the account username, run the following command with the UUID identifier in the appropriate place:
| /usr/bin/dscl . -search /Users GeneratedUID UUID_goes_here | awk '{print $1}' | head -n 1 |
Running this command should provide output similar that shown below:
| username@ZWD3QRQYG2 ~ % /usr/bin/dscl . -search /Users GeneratedUID 88B48FCB-E137-4D9F-B4E9-7806396ACED7 | awk '{print $1}' | head -n 1 | |
| username | |
| username@ZWD3QRQYG2 ~ % |

Using this information, see below for an example script showing how you can get the account’s assigned UUID identifier and then use it to identify the managed user’s username:
| #!/bin/zsh | |
| MDMManagedUserGUID=$(/usr/sbin/system_profiler SPConfigurationProfileDataType | grep "Managed User" | sed -E 's/.* ([0-9A-F-]{36}) .*/\1/') | |
| MDMManagedUserUsername=$(/usr/bin/dscl . -search /Users GeneratedUID "$MDMManagedUserGUID" | awk '{print $1}' | head -n 1 2>/dev/null) | |
| echo "GeneratedUID of the MDM managed user account: $MDMManagedUserGUID" | |
| echo "Username of the MDM managed user account: $MDMManagedUserUsername" |
Running the example script should provide output similar that shown below:
| username@ZWD3QRQYG2 ~ % ./mdm_managed_user_lookup.sh | |
| GeneratedUID of the MDM managed user account: 88B48FCB-E137-4D9F-B4E9-7806396ACED7 | |
| Username of the MDM managed user account: username | |
| username@ZWD3QRQYG2 ~ % |

The Self Service+ app is sending its logging to the unified system log. With the right predicates, you can retrieve Self Service+‘s logging when needed by using the log command line tool. For more details, please see below the jump.
The Self Service+ app uses a number of processes and logging subsystems, but you should be able to retrieve them using the following search predicates:
For example, the following log command should get all Self Service+ related logging for the last ten minutes:
| /usr/bin/log show –predicate 'process contains "Self Service" OR subsystem BEGINSWITH "com.jamf.selfserviceplus"' –info –debug –last 10m |
With log predicates, the ” : ” character can also be used in place of contains and the ” :^ ” characters can be used in place of BEGINSWITH, so the following command should also work to get all Self Service+ related logging for the last ten minutes:
| /usr/bin/log show –predicate 'process:"Self Service" OR subsystem:^"com.jamf.selfserviceplus"' –info –debug –last 10m |
The resulting logging should look similar to what’s shown below:
| Timestamp Thread Type Activity PID TTL | |
| 2025-10-17 11:46:22.315596-0400 0x7961 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:46:22.316898-0400 0x7958 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:46:32.315103-0400 0x7961 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:46:32.316462-0400 0x7961 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:46:33.756867-0400 0x5857 Default 0x0 1571 7 Self Service+: (SkyLight) [com.apple.SkyLight:default] [1571] CGSDisplayNotifyProc: got notification kCGSDisplayDisplaySystemStateChanged | |
| 2025-10-17 11:46:33.756869-0400 0x5857 Default 0x0 1571 7 Self Service+: (SkyLight) [com.apple.SkyLight:default] [1571] CGSDisplayNotifyProc: display system state seed 14 -> 15 | |
| 2025-10-17 11:46:33.760817-0400 0x5857 Default 0x0 1571 7 Self Service+: (SkyLight) [com.apple.SkyLight:default] [1571] CGSDisplayNotifyProc: got notification kCGSDisplayDidWake | |
| 2025-10-17 11:46:33.762373-0400 0x5857 Info 0x0 1571 0 Self Service+: (RunningBoardServices) [com.apple.runningboard:assertion] Acquiring assertion: <RBSAssertionDescriptor| "AppNap adapter assertion" ID:(null) target:1571> | |
| 2025-10-17 11:46:33.780793-0400 0x42a1 Default 0x0 1322 7 Self Service+ Agent: (SkyLight) [com.apple.SkyLight:default] [1322] CGSDisplayNotifyProc: got notification kCGSDisplayDisplaySystemStateChanged | |
| 2025-10-17 11:46:33.780794-0400 0x42a1 Default 0x0 1322 7 Self Service+ Agent: (SkyLight) [com.apple.SkyLight:default] [1322] CGSDisplayNotifyProc: display system state seed 14 -> 15 | |
| 2025-10-17 11:46:33.781112-0400 0x42a1 Default 0x0 1322 7 Self Service+ Agent: (SkyLight) [com.apple.SkyLight:default] [1322] CGSDisplayNotifyProc: got notification kCGSDisplayDidWake | |
| 2025-10-17 11:46:33.791535-0400 0x7958 Activity 0x691e0 1571 0 Self Service+: (RunningBoardServices) didChangeInheritances | |
| 2025-10-17 11:46:33.868069-0400 0x7961 Activity 0x691e1 1571 0 Self Service+: (RunningBoardServices) didChangeInheritances | |
| 2025-10-17 11:46:36.949586-0400 0x5857 Info 0x0 1571 0 Self Service+: (RunningBoardServices) [com.apple.runningboard:assertion] Acquiring assertion: <RBSAssertionDescriptor| "AppNap adapter assertion" ID:(null) target:1571> | |
| 2025-10-17 11:46:36.995063-0400 0x7961 Activity 0x691e2 1571 0 Self Service+: (RunningBoardServices) didChangeInheritances | |
| 2025-10-17 11:46:37.181620-0400 0x6cdb Activity 0x68fff 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching | |
| 2025-10-17 11:46:37.181649-0400 0x6cdb Activity 0x69b60 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching_ios | |
| 2025-10-17 11:46:37.188017-0400 0x6cdb Activity 0x69b61 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching | |
| 2025-10-17 11:46:37.188033-0400 0x6cdb Activity 0x69b62 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching_ios | |
| 2025-10-17 11:46:37.190095-0400 0x6cdb Activity 0x69b63 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching | |
| 2025-10-17 11:46:37.190105-0400 0x6cdb Activity 0x69b64 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching_ios | |
| 2025-10-17 11:46:37.191924-0400 0x6cdb Activity 0x69b65 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching | |
| 2025-10-17 11:46:37.191936-0400 0x6cdb Activity 0x69b66 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching_ios | |
| 2025-10-17 11:46:37.194178-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:46:37.194222-0400 0x7961 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:46:37.194631-0400 0x6cdb Activity 0x69b67 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching | |
| 2025-10-17 11:46:37.194668-0400 0x6cdb Activity 0x69b68 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching_ios | |
| 2025-10-17 11:46:37.195636-0400 0x7961 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:46:37.197600-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:46:37.197677-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:46:37.198174-0400 0x6cdb Activity 0x69b69 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching | |
| 2025-10-17 11:46:37.198188-0400 0x6cdb Activity 0x69b6a 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching_ios | |
| 2025-10-17 11:46:37.200337-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:46:37.201365-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:46:37.201701-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:46:37.202388-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:46:37.203095-0400 0x6cdb Activity 0x69b6b 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching | |
| 2025-10-17 11:46:37.203114-0400 0x6cdb Activity 0x69b6c 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching_ios | |
| 2025-10-17 11:46:37.205971-0400 0x6cdb Activity 0x69b6d 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching | |
| 2025-10-17 11:46:37.205983-0400 0x6cdb Activity 0x69b6e 1322 0 Self Service+ Agent: (Security) SecItemCopyMatching_ios | |
| 2025-10-17 11:46:37.208430-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:46:37.209924-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:46:37.210292-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:46:37.219046-0400 0x78c1 Activity 0x691e3 1571 0 Self Service+: (RunningBoardServices) didChangeInheritances | |
| 2025-10-17 11:46:42.310821-0400 0x78c1 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:46:42.311318-0400 0x7961 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:46:44.155210-0400 0x7961 Info 0x0 1571 0 Self Service+: (Network) [com.apple.network:] nw_channel_create_block_invoke Channel destroyed with key: D83EF814-884A-4CA2-A7A4-B0215E041106-5 and fd: 9 | |
| 2025-10-17 11:46:52.312347-0400 0x7958 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:46:52.313711-0400 0x7958 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:02.311749-0400 0x7ae4 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:47:02.312972-0400 0x7ae4 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:12.313268-0400 0x795f Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:47:12.313613-0400 0x795f Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:22.311303-0400 0x7bd4 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:47:22.312714-0400 0x7b77 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:32.311357-0400 0x7bee Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:47:32.312451-0400 0x7bee Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:33.753980-0400 0x5857 Info 0x0 1571 0 Self Service+: (RunningBoardServices) [com.apple.runningboard:assertion] Acquiring assertion: <RBSAssertionDescriptor| "AppNap adapter assertion" ID:(null) target:1571> | |
| 2025-10-17 11:47:42.314256-0400 0x7bee Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:47:42.315616-0400 0x7bee Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:52.314181-0400 0x7c36 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:47:52.315551-0400 0x7c36 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:02.312976-0400 0x7cb1 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:48:02.314074-0400 0x7c86 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:12.312373-0400 0x7d27 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:48:12.313751-0400 0x7c86 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:22.311484-0400 0x7d6d Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:48:22.312911-0400 0x7cb1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:27.975951-0400 0x7d6d Default 0x0 1571 0 Self Service+: (libxpc.dylib) [com.apple.xpc:connection] [0x8a50f5680] Re-initialization successful; calling out to event handler with XPC_ERROR_CONNECTION_INTERRUPTED | |
| 2025-10-17 11:48:32.313465-0400 0x7d27 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:48:32.314575-0400 0x7d27 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:42.314439-0400 0x7d6d Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:48:42.315605-0400 0x7d6d Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:52.314157-0400 0x7ddf Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:48:52.315521-0400 0x7ddf Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:49:02.311184-0400 0x7d27 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:49:02.312393-0400 0x7d27 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:49:12.312786-0400 0x7d27 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:49:12.314168-0400 0x7d27 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:49:22.314207-0400 0x7d27 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:49:22.315581-0400 0x7d27 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:49:32.312021-0400 0x7f0b Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:49:32.312795-0400 0x7f0b Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:49:42.311109-0400 0x7f0b Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:49:42.312544-0400 0x7f0b Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:49:52.314251-0400 0x7f70 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:49:52.315662-0400 0x7f70 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:50:02.313039-0400 0x8122 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:50:02.313788-0400 0x8122 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:50:12.314690-0400 0x8121 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:50:12.316174-0400 0x8121 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:50:22.314177-0400 0x8120 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:50:22.315197-0400 0x8120 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:50:32.314221-0400 0x819d Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:50:32.315600-0400 0x819d Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:50:42.314189-0400 0x819f Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:50:42.315551-0400 0x819f Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:50:52.314197-0400 0x8268 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:50:52.315389-0400 0x8268 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:51:02.314186-0400 0x8269 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:51:02.315552-0400 0x8269 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:51:12.314282-0400 0x8325 Error 0x0 1571 0 Self Service+: [com.jamf.ssp.daemon.client:XPC] <private> | |
| 2025-10-17 11:51:12.315629-0400 0x8325 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability |
If you want to search for logging that contains both logging predicates in common, the following log command should get all Self Service+ related logging which contains both for the last ten minutes:
| /usr/bin/log show –predicate 'process contains "Self Service" AND subsystem BEGINSWITH "com.jamf.selfserviceplus"' –info –debug –last 10m |
The resulting logging should look similar to what’s shown below:
| Timestamp Thread Type Activity PID TTL | |
| 2025-10-17 11:38:52.315983-0400 0x6f21 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:39:02.314088-0400 0x6f20 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:39:12.314701-0400 0x6f3e Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:39:22.316533-0400 0x6f20 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:39:32.313866-0400 0x70ac Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:39:42.315384-0400 0x70ac Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:39:52.316510-0400 0x70ac Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:40:02.316589-0400 0x71c4 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:40:12.316488-0400 0x71c5 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:40:22.312024-0400 0x71c4 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:40:32.315640-0400 0x71c3 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:40:42.313794-0400 0x71c4 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:40:52.316075-0400 0x72c7 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:41:02.316523-0400 0x72bb Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:41:12.316514-0400 0x72e6 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:41:17.264444-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:41:17.264527-0400 0x72e7 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:41:17.265866-0400 0x72e7 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:41:17.268081-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:41:17.268116-0400 0x72e7 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:41:17.268670-0400 0x72e7 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:41:17.269480-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:41:17.269512-0400 0x72e7 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:41:17.269990-0400 0x72e7 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:41:17.270788-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:41:17.270825-0400 0x72e6 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:41:17.271265-0400 0x72e6 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:41:22.316556-0400 0x7301 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:41:32.316053-0400 0x7358 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:41:42.315990-0400 0x7358 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:41:52.316690-0400 0x7392 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:42:02.317092-0400 0x737f Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:42:12.316855-0400 0x737f Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:42:22.315066-0400 0x7391 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:42:32.313331-0400 0x7391 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:42:42.316195-0400 0x745a Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:42:52.316378-0400 0x7484 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:43:02.314177-0400 0x7496 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:43:12.316563-0400 0x74de Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:43:22.312524-0400 0x750b Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:43:32.316468-0400 0x7527 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:43:42.314920-0400 0x7509 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:43:52.314470-0400 0x7564 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:44:02.316030-0400 0x7529 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:44:12.316354-0400 0x7528 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:44:22.316335-0400 0x7565 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:44:32.316505-0400 0x7642 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:44:42.316719-0400 0x7739 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:44:52.316029-0400 0x7755 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:45:02.317049-0400 0x773a Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:45:12.314839-0400 0x780a Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:45:22.316434-0400 0x7809 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:45:32.315798-0400 0x77ae Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:45:42.317592-0400 0x78c0 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:45:52.316233-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:46:02.316641-0400 0x78b7 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:46:12.316540-0400 0x7958 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:46:22.316898-0400 0x7958 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:46:32.316462-0400 0x7961 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:46:37.194178-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:46:37.194222-0400 0x7961 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:46:37.195636-0400 0x7961 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:46:37.197600-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:46:37.197677-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:46:37.200337-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:46:37.201365-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:46:37.201701-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:46:37.202388-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:46:37.208430-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new state from the Daemon | |
| 2025-10-17 11:46:37.209924-0400 0x6cdb Info 0x0 1322 0 Self Service+ Agent: [com.jamf.selfserviceplus.agent:xpc.app] [XPC] get state ok | |
| 2025-10-17 11:46:37.210292-0400 0x78c1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:Binary repository] [XPC] Did receive new suggestions from the Daemon | |
| 2025-10-17 11:46:42.311318-0400 0x7961 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:46:52.313711-0400 0x7958 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:02.312972-0400 0x7ae4 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:12.313613-0400 0x795f Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:22.312714-0400 0x7b77 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:32.312451-0400 0x7bee Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:42.315616-0400 0x7bee Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:47:52.315551-0400 0x7c36 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:02.314074-0400 0x7c86 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:12.313751-0400 0x7c86 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:22.312911-0400 0x7cb1 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:32.314575-0400 0x7d27 Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability | |
| 2025-10-17 11:48:42.315605-0400 0x7d6d Info 0x0 1571 0 Self Service+: [com.jamf.selfserviceplus:EmbeddedRepository] [Embedded] Update sections for com.jamf.protect.capability |
As part the KBase article, the following man page is referenced:
apple_ssh_and_filevault

This can be accessed using the following command:
| man apple_ssh_and_filevault |

For more details, please see below the jump.
To unlock FileVault on macOS Tahoe using SSH, you can use the procedure described below:
Pre-requisites:
1. Connect from the second computer to the target Mac using the username and network address of the target Mac.
For this example, the target Mac has the following account and network address:
In this example, the following command is being used to connect from the second computer to the target Mac using SSH:
| ssh username@computername.local |
2. When you connect, you should be informed that the target Mac is locked and that you’ll need to a local username and password to unlock it.
In this example, we’re connecting with the username of an account which is enabled on the Mac to unlock FileVault. Because of this, we should only need to provide the password for that account.

3. Once the password has been provided, the Mac unlocks FileVault and automatically closes the SSH connection between the second computer and the target Mac.

On the target Mac, you should see activity similar to this occurring on the login screen.
4. After a short amount of time, the target Mac should be unlocked. At this point, you should be able to connect again from the second computer to the target Mac using SSH and have access to all expected functionality.

Apple has the SkipSetupItems key set to store its settings in an array, as described below:
| – key: SkipSetupItems | |
| supportedOS: | |
| iOS: | |
| introduced: '14.0' | |
| macOS: | |
| introduced: '15.0' | |
| type: <array> | |
| presence: optional | |
| content: An array of strings that describe the setup items to skip. `SkipKeys` provides | |
| a list of valid strings and their meanings. Available in iOS 14 and later, and | |
| macOS 15 and later. |
Why this is important is that the array and its list of strings is what’s being interpreted as the setting for the SkipSetupItems key in a management profile. This detail is important in itself because it can lead to multiple management profiles managing what macOS sees as the same setting.
In a case where you have two or more management profiles managing the same setting differently, you get what Apple calls indeterminate or undefined behavior. In a situation like this, macOS may randomly choose to apply one of the settings and ignore any others, or just ignore all of the settings. For more details, please see below the jump.
As an example, you may deploy a management profile to stop the Your Mac is Ready for FileVault screen from appearing.

In that case, there’s now a profile which is deploying the following setting in the SkipSetupItems array:
| <key>SkipSetupItems</key> | |
| <array> | |
| <string>FileVault</string> | |
| </array> |
Later, you may choose to deploy a management profile to stop the Software Update Complete screen from appearing.

In that case, there’s now a management profile which is deploying the following setting in the SkipSetupItems array:
| <key>SkipSetupItems</key> | |
| <array> | |
| <string>UpdateCompleted</string> | |
| </array> |
Once the second management profile to suppress the Software Update Complete screen has been deployed, you may now see the following behavior occurring randomly on the Macs it was deployed to:
The fix for this situation is to not deploy separate management profiles containing settings for the SkipSetupItems key. Instead, combine the settings into one management profile with multiple entries in the array. For example, to suppress both the Software Update Complete and Your Mac is Ready for FileVault screens, you would deploy a single management profile with the following settings in the SkipSetupItems array:
| <key>SkipSetupItems</key> | |
| <array> | |
| <string>FileVault</string> | |
| <string>UpdateCompleted</string> | |
| </array> |
For macOS Tahoe 26.0, the following management profile should stop the following screens from appearing:
| <?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"> | |
| <dict> | |
| <key>PayloadUUID</key> | |
| <string>C89844D6-D188-45BF-A2E2-CA151E8829DB</string> | |
| <key>PayloadType</key> | |
| <string>Configuration</string> | |
| <key>PayloadOrganization</key> | |
| <string>Company Name</string> | |
| <key>PayloadIdentifier</key> | |
| <string>C89844D6-D188-45BF-A2E2-CA151E8829DB</string> | |
| <key>PayloadDisplayName</key> | |
| <string>Disable macOS Tahoe Setup Assistant Screens</string> | |
| <key>PayloadDescription</key> | |
| <string>Disables the Setup Assistant screens from appearing on login for new user accounts</string> | |
| <key>PayloadVersion</key> | |
| <integer>1</integer> | |
| <key>PayloadEnabled</key> | |
| <true/> | |
| <key>PayloadRemovalDisallowed</key> | |
| <true/> | |
| <key>PayloadScope</key> | |
| <string>System</string> | |
| <key>PayloadContent</key> | |
| <array> | |
| <dict> | |
| <key>PayloadDisplayName</key> | |
| <string>Custom Settings</string> | |
| <key>PayloadIdentifier</key> | |
| <string>0F5CC61C-2D48-4A94-862A-F4777F7D9C48</string> | |
| <key>PayloadOrganization</key> | |
| <string>Company Name</string> | |
| <key>PayloadType</key> | |
| <string>com.apple.ManagedClient.preferences</string> | |
| <key>PayloadUUID</key> | |
| <string>0F5CC61C-2D48-4A94-862A-F4777F7D9C48</string> | |
| <key>PayloadVersion</key> | |
| <integer>1</integer> | |
| <key>PayloadContent</key> | |
| <dict> | |
| <key>com.apple.SetupAssistant.managed</key> | |
| <dict> | |
| <key>Forced</key> | |
| <array> | |
| <dict> | |
| <key>mcx_preference_settings</key> | |
| <dict> | |
| <key>SkipSetupItems</key> | |
| <array> | |
| <string>Diagnostics</string> | |
| <string>FileVault</string> | |
| <string>Intelligence</string> | |
| <string>SoftwareUpdate</string> | |
| <string>UpdateCompleted</string> | |
| <string>Welcome</string> | |
| </array> | |
| </dict> | |
| </dict> | |
| </array> | |
| </dict> | |
| </dict> | |
| </dict> | |
| </array> | |
| </dict> | |
| </plist> |

I have not found a way to suppress this screen using a defaults command, but it is possible to suppress the Software Update Complete screen on macOS Tahoe using a configuration profile. For more details, please see below the jump.
The relevant preference domain and key values are below:
The profile is available on GitHub via the link below:
https://github.com/rtrouton/profiles/blob/main/SkipSoftwareUpdateCompleteSetup
]]>