Quantcast
Channel: rtrouton – Der Flounder
Viewing all 764 articles
Browse latest View live

Blocking Jamf Pro’s macOS Onboarding feature using a macOS configuration profile

$
0
0

One of the new features of Jamf Pro 11.1.x and later is macOS Onboarding, which is a Self Service-based feature which provides a way to run a setup policy or policies. Rob Potvin has a good write-up on it here, which I recommend checking out:

https://www.motionbug.com/jamf-pro-and-macos-onboarding/

One of the things to be aware of with the new macOS Onboarding feature is that once the feature has been enabled, macOS Onboarding will run its associated policies on all Macs which don’t have the following user-level preference set:

  • Domain: com.jamfsoftware.selfservice.mac
  • Key: com.jamfsoftware.selfservice.onboardingcomplete
  • Value: Boolean (TRUE or FALSE)

 

Value set to FALSE (allowing macOS Onboarding to run):



This file contains 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"&gt;
<plist version="1.0">
<dict>
<key>com.jamfsoftware.selfservice.onboardingcomplete</key>
<false/>
</dict>
</plist>

 

Value set to TRUE (blocking macOS Onboarding from running):



This file contains 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"&gt;
<plist version="1.0">
<dict>
<key>com.jamfsoftware.selfservice.onboardingcomplete</key>
<true/>
</dict>
</plist>

 

Fortunately, it’s possible to add this setting with a value of TRUE to a macOS configuration profile and deploy the profile to all Macs that you don’t want to run macOS Onboarding on.

For those who would need this, I have an example macOS configuration profile with com.jamfsoftware.selfservice.onboardingcomplete set to TRUE available via the link below:

https://github.com/rtrouton/profiles/tree/main/JamfProSelfServiceOnboardingCompleted


Clearing the logged-in Microsoft SSO user on macOS using Microsoft’s Company Portal app

$
0
0

As part of working on a task recently, I ran into an issue with Microsoft’s Enterprise SSO plug-in on macOS. This plug-in enables single sign-on for Entra ID accounts for applications which support it. In this case, the issue was the following:

Desired behavior:

  1. Open application.
  2. Click the login button.
  3. Be prompted for the Entra ID user account to sign in with.
  4. Log in with that user account.

Actual behavior:

  1. Open application.
  2. Click the login button.
  3. Be automatically logged in as the Entra ID user registered for single sign-on.

Unfortunately for my use case, I really needed to have the application in question prompt the user for which account they needed to log in with because a user account other than the one registered for single sign-on needed to be able to sign in to the application in question.

After some discussion in the #jamf-intune-integration channel in the Mac Admins Slack, I was pointed towards a way to sign out the account which was enabled for single sign-on using Microsoft’s Company Portal application. With no account enabled for single sign-on, the application would now prompt for a user account to sign in with. For more details, please see below the jump.

To sign out the Entra ID account enabled for single sign-on using the Company Portal application, please use the procedure described below:

1. Open the Company Portal application.

2. Sign into the Company Portal application as the user of the computer.

3. Under the Company Portal menu in the menubar, select Settings…

4. In the Settings window, in the Single sign-on (SSO) section, click the Remove account from this device button.

Note: I’ve noticed that clicking the Remove account from this device button doesn’t make a noticeable change in the Settings window; the account still appears as enabled. However, clicking the button should do what’s needed and applications should now prompt for a user account.

Jamf Pro 11.2.0 computer and mobile device enrollment permission changes

$
0
0

As part of Jamf Pro 11.2.0 and later, Jamf has made a permissions change which affects enrollment. It is is mentioned in the 11.2.0 release notes in the Other Changes and Improvements section:

The Jamf Pro Server Action privilege, “Enroll Computers and Mobile Devices”, was split into two separate privileges.

What this means is that in Jamf Pro versions before 11.2.0, you had one permission:

  • Enroll Computers and Mobile Devices

As of Jamf Pro 11.2.0, there are now two permissions:

  • Enroll Computers
  • Enroll Mobile Devices

The important thing to know is that as part of upgrading to Jamf Pro 11.2.0, the Enroll Computers and Mobile Devices permission is removed, but the following permissions are not selected automatically:

  • Enroll Computers
  • Enroll Mobile Devices

To address this issue, if needed go into the Jamf Pro admin console following the upgrade to Jamf Pro 11.2.0 and select the new separate Enroll Computers and Enroll Mobile Devices permissions.

Using AutoPkg to build a Cisco Secure Client installer

$
0
0

Fraser Hess recently posted about automating the creation of Cisco Secure Client installers. Similar to my earlier post on using AutoPkg to build a Cisco AnyConnect installer, it’s possible to replicate this packaging workflow, including generating an installer choices XML file, using AutoPkg. For more details, please see below the jump.

In this example, there are going to be multiple AutoPkg recipes and support files referenced:

  • CiscoSecureClient.download.recipe – Download recipe for the vendor-supplied Cisco Secure Client disk image with the vendor-supplied installer package stored inside.
  • CiscoSecureClient.pkg.recipe – Package recipe for Cisco Secure Client, which generates an installer choices XML file and wraps both the installer choices XML file and the vendor-supplied installer package inside a separate installer package generated by AutoPkg
  • Example.xml – Sample VPN profile for Cisco Secure Client’s VPN module
  • CiscoSecureClient package recipe override – This is the AutoPkg recipe override where you’re defining how the installer choices file is configured and other information being supplied to the Cisco Secure Client installer by the AutoPkg package creation process.

Important information:

A. The recipes as written assume the following:

  • You’re using the Cisco Secure Client Umbrella module.
  • You’re adding the necessary configuration information for the Cisco Secure Client Umbrella module to the AutoPkg recipe override.
  • You may be using the Cisco Secure Client VPN module.

B. You absolutely must create an AutoPkg override to work with these recipes. The download location, configuration for the installer choices XML file and other settings are not included in the AutoPkg recipes themselves and must be defined in the override.

C. The Cisco Secure Client disk image does not have a set address for download, so you will need to do one of the following:

  • Download the disk image from Cisco and host it yourself somewhere.
  • Change the download URL in the AutoPkg recipe override to match wherever you can currently download the Cisco Secure Client disk image from.

D. To configure the installer choices XML file, you must designate what modules you want to include using ones and zeros in the AutoPkg override. By default, the .pkg recipe is configured to install all modules:



This file contains 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


<key>CHOICE_VPN</key>
<string>1</string>
<key>CHOICE_WEBSECURITY</key>
<string>1</string>
<key>CHOICE_FIREAMP</key>
<string>1</string>
<key>CHOICE_DART</key>
<string>1</string>
<key>CHOICE_DUO</key>
<string>1</string>
<key>CHOICE_POSTURE</key>
<string>1</string>
<key>CHOICE_ISEPOSTURE</key>
<string>1</string>
<key>CHOICE_NVM</key>
<string>1</string>
<key>CHOICE_THOUSANDEYES</key>
<string>1</string>
<key>CHOICE_UMBRELLA</key>
<string>1</string>
<key>CHOICE_ZEROTRUST</key>
<string>1</string>
view raw

gistfile1.txt

hosted with ❤ by GitHub

To change this, change one to zero for the modules you don’t want to install. For example, the configuration below will configure the Secure Client installer to only install the Secure Client Umbrella module:



This file contains 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


<key>CHOICE_VPN</key>
<string>0</string>
<key>CHOICE_WEBSECURITY</key>
<string>0</string>
<key>CHOICE_FIREAMP</key>
<string>0</string>
<key>CHOICE_DART</key>
<string>0</string>
<key>CHOICE_DUO</key>
<string>0</string>
<key>CHOICE_POSTURE</key>
<string>0</string>
<key>CHOICE_ISEPOSTURE</key>
<string>0</string>
<key>CHOICE_NVM</key>
<string>0</string>
<key>CHOICE_THOUSANDEYES</key>
<string>0</string>
<key>CHOICE_UMBRELLA</key>
<string>1</string>
<key>CHOICE_ZEROTRUST</key>
<string>0</string>
view raw

gistfile1.txt

hosted with ❤ by GitHub

E. If you do not want to have the VPN module installed or enabled, you will need to set the CHOICE_VPN and DISABLE_VPN settings in the recipe override. Please see below for an example:



This file contains 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


<key>CHOICE_VPN</key>
<string>0</string>
<key>CHOICE_WEBSECURITY</key>
<string>0</string>
<key>CONTENT_XML</key>
<string>Put_escaped_XML_profile_text_into_AutoPkg_recipe_override</string>
<key>DISABLE_CUSTOMER_EXPERIENCE_FEEDBACK</key>
<string>false</string>
<key>DISABLE_VPN</key>
<string>true</string>
view raw

gistfile1.txt

hosted with ❤ by GitHub

In this example, the CHOICE_VPN setting is set to zero and the DISABLE_VPN setting is set to true.

F. These recipes allow you to hide the Cisco-provided Secure Client installers, so that your users will not be able to see them in the Finder. Like the installer choices selection, this can be set using ones and zeros in the AutoPkg override.

To hide, set the HIDE_UNINSTALLERS setting to one:



This file contains 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


<key>HIDE_UNINSTALLERS</key>
<string>1</string>
view raw

gistfile1.txt

hosted with ❤ by GitHub

To not hide the uninstallers, set the HIDE_UNINSTALLERS setting to zero:



This file contains 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


<key>HIDE_UNINSTALLERS</key>
<string>0</string>
view raw

gistfile1.txt

hosted with ❤ by GitHub

G. It’s possible to disable the customer feedback functionality through the installer. To set this to be disabled, set the DISABLE_CUSTOMER_EXPERIENCE_FEEDBACK setting to true.



This file contains 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


<key>DISABLE_CUSTOMER_EXPERIENCE_FEEDBACK</key>
<string>true</string>
view raw

gistfile1.txt

hosted with ❤ by GitHub

To leave the customer feedback functionality enabled, set the DISABLE_CUSTOMER_EXPERIENCE_FEEDBACK setting to false.



This file contains 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


<key>DISABLE_CUSTOMER_EXPERIENCE_FEEDBACK</key>
<string>false</string>
view raw

gistfile1.txt

hosted with ❤ by GitHub

Please see below for the example .download and .pkg recipes, example VPN XML file and example .pkg recipe override:

Download recipe:



This file contains 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"&gt;
<plist version="1.0">
<dict>
<key>Description</key>
<string>Downloads a Cisco Secure Client package from a specified URL.</string>
<key>Identifier</key>
<string>com.company.download.CiscoSecureClient</string>
<key>Input</key>
<dict>
<key>NAME</key>
<string>Cisco Secure Client</string>
<key>VENDOR</key>
<string>Cisco</string>
<key>DOWNLOAD_URL</key>
<string>Put_download_URL_into_AutoPkg_recipe_override</string>
</dict>
<key>MinimumVersion</key>
<string>1.0.0</string>
<key>Process</key>
<array>
<dict>
<key>Arguments</key>
<dict>
<key>predicate</key>
<string>DOWNLOAD_URL == "Put_download_URL_into_AutoPkg_recipe_override"</string>
</dict>
<key>Processor</key>
<string>StopProcessingIf</string>
</dict>
<dict>
<key>Processor</key>
<string>URLDownloader</string>
<key>Arguments</key>
<dict>
<key>url</key>
<string>%DOWNLOAD_URL%</string>
<key>request_headers</key>
<dict>
<key>user-agent</key>
<string>%DOWNLOAD_USERAGENT%</string>
<key>referer</key>
<string>%DOWNLOAD_REFERER%</string>
</dict>
</dict>
</dict>
<dict>
<key>Processor</key>
<string>FlatPkgUnpacker</string>
<key>Arguments</key>
<dict>
<key>flat_pkg_path</key>
<string>%pathname%/Cisco Secure Client.pkg</string>
<key>destination_path</key>
<string>%RECIPE_CACHE_DIR%/%VENDOR%/unpack</string>
<key>purge_destination</key>
<true />
</dict>
</dict>
<dict>
<key>Processor</key>
<string>PkgPayloadUnpacker</string>
<key>Arguments</key>
<dict>
<key>pkg_payload_path</key>
<string>%RECIPE_CACHE_DIR%/%VENDOR%/unpack/vpn_module.pkg/Payload</string>
<key>destination_path</key>
<string>%RECIPE_CACHE_DIR%/%VENDOR%/vpn_module_payload</string>
<key>purge_destination</key>
<true />
</dict>
</dict>
<dict>
<key>Processor</key>
<string>Versioner</string>
<key>Arguments</key>
<dict>
<key>input_plist_path</key>
<string>%RECIPE_CACHE_DIR%/%VENDOR%/vpn_module_payload/Applications/Cisco/Cisco Secure Client.app/Contents/Info.plist</string>
<key>plist_version_key</key>
<string>CFBundleShortVersionString</string>
</dict>
</dict>
<dict>
<key>Processor</key>
<string>EndOfCheckPhase</string>
</dict>
</array>
</dict>
</plist>
view raw

gistfile1.txt

hosted with ❤ by GitHub

Package recipe:



This file contains 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"&gt;
<plist version="1.0">
<dict>
<key>Comments</key>
<string>Based on https://github.com/autopkg/grahampugh-recipes/blob/master/CiscoSecureClient/CiscoSecureClient.pkg.recipe
Wraps the vendor package so that it can be run with Choice Changes XML.
Requires a configuration xml profile (VPN_XML) which should be added to the RECIPE_OVERRIDE_DIR before running the recipe. An example is provided in the recipe repo folder, named example.xml.
If you need more packages installing, you should make a copy of this recipe and edit the ChoicesXMLGenerator choices list. This isn't overridable. Don't forget to change the Identifier if you do this.</string>
<key>Description</key>
<string>Creates a Cisco Secure Client package with all modules enabled.</string>
<key>Identifier</key>
<string>com.company.pkg.CiscoSecureClient-AllModulesEnabled</string>
<key>ParentRecipe</key>
<string>com.company.download.CiscoSecureClient</string>
<key>Input</key>
<dict>
<key>NAME</key>
<string>Cisco Secure Client</string>
<key>VPN_XML</key>
<string>example.xml</string>
<key>CONTENT_XML</key>
<string>Put_escaped_XML_profile_text_into_AutoPkg_recipe_override</string>
<key>UMBRELLA_ORGANIZATION_ID</key>
<string>Put_text_into_AutoPkg_recipe_override</string>
<key>UMBRELLA_FINGERPRINT</key>
<string>Put_text_into_AutoPkg_recipe_override</string>
<key>UMBRELLA_USER_ID</key>
<string>Put_text_into_AutoPkg_recipe_override</string>
<key>CHOICE_VPN</key>
<string>1</string>
<key>CHOICE_WEBSECURITY</key>
<string>1</string>
<key>CHOICE_FIREAMP</key>
<string>1</string>
<key>CHOICE_DART</key>
<string>1</string>
<key>CHOICE_DUO</key>
<string>1</string>
<key>CHOICE_POSTURE</key>
<string>1</string>
<key>CHOICE_ISEPOSTURE</key>
<string>1</string>
<key>CHOICE_NVM</key>
<string>1</string>
<key>CHOICE_THOUSANDEYES</key>
<string>1</string>
<key>CHOICE_UMBRELLA</key>
<string>1</string>
<key>CHOICE_ZEROTRUST</key>
<string>1</string>
<key>DISABLE_VPN</key>
<string>false</string>
<key>DISABLE_CUSTOMER_EXPERIENCE_FEEDBACK</key>
<string>false</string>
<key>HIDE_UNINSTALLERS</key>
<string>1</string>
<key>VENDOR</key>
<string>Cisco</string>
<key>SOFTWARETITLE1</key>
<string>Secure</string>
<key>SOFTWARETITLE2</key>
<string>Client</string>
<key>SOFTWARETITLE3</key>
<string>All_Modules_Enabled</string>
<key>PKGID</key>
<string>com.company.cisco.SecureClient</string>
</dict>
<key>MinimumVersion</key>
<string>1.0.0</string>
<key>Process</key>
<array>
<dict>
<key>Arguments</key>
<dict>
<key>pkgdirs</key>
<dict>
<key>Profiles</key>
<string>0755</string>
<key>Profiles/ampenabler</key>
<string>0755</string>
<key>Profiles/feedback</key>
<string>0755</string>
<key>Profiles/iseposture</key>
<string>0755</string>
<key>Profiles/nvm</key>
<string>0755</string>
<key>Profiles/umbrella</key>
<string>0755</string>
<key>Profiles/vpn</key>
<string>0755</string>
<key>Profiles/websecurity</key>
<string>0755</string>
</dict>
<key>pkgroot</key>
<string>%RECIPE_CACHE_DIR%/Scripts</string>
</dict>
<key>Processor</key>
<string>PkgRootCreator</string>
</dict>
<dict>
<key>Arguments</key>
<dict>
<key>pkgdirs</key>
<dict />
<key>pkgroot</key>
<string>%RECIPE_CACHE_DIR%/pkgroot</string>
</dict>
<key>Processor</key>
<string>PkgRootCreator</string>
</dict>
<dict>
<key>Arguments</key>
<dict>
<key>pkg_path</key>
<string>%RECIPE_CACHE_DIR%/Scripts/CiscoSecureClient.pkg</string>
<key>source_pkg</key>
<string>%pathname%/Cisco Secure Client.pkg</string>
</dict>
<key>Processor</key>
<string>PkgCopier</string>
</dict>
<dict>
<key>Arguments</key>
<dict>
<key>file_content</key>
<string>%CONTENT_XML%</string>
<key>file_mode</key>
<string>0644</string>
<key>file_path</key>
<string>%RECIPE_CACHE_DIR%/Scripts/Profiles/vpn/%VPN_XML%</string>
</dict>
<key>Processor</key>
<string>FileCreator</string>
</dict>
<dict>
<key>Arguments</key>
<dict>
<key>file_content</key>
<string>{
"organizationId" : "%UMBRELLA_ORGANIZATION_ID%",
"fingerprint" : "%UMBRELLA_FINGERPRINT%",
"userId" : "%UMBRELLA_USER_ID%"
}</string>
<key>file_mode</key>
<string>0644</string>
<key>file_path</key>
<string>%RECIPE_CACHE_DIR%/Scripts/Profiles/umbrella/OrgInfo.json</string>
</dict>
<key>Processor</key>
<string>FileCreator</string>
</dict>
<dict>
<key>Arguments</key>
<dict>
<key>file_content</key>
<string>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
&lt;plist version="1.0"&gt;
&lt;array&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_VPN%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_anyconnect_vpn&lt;/string&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_WEBSECURITY%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_websecurity&lt;/string&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_FIREAMP%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_fireamp&lt;/string&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_DART%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_dart&lt;/string&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_DUO%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_duo&lt;/string&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_POSTURE%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_secure_firewall_posture&lt;/string&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_ISEPOSTURE%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_iseposture&lt;/string&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_NVM%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_nvm&lt;/string&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_THOUSANDEYES%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_thousandeyes&lt;/string&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_UMBRELLA%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_secure_umbrella&lt;/string&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;attributeSetting&lt;/key&gt;
&lt;integer&gt;%CHOICE_ZEROTRUST%&lt;/integer&gt;
&lt;key&gt;choiceAttribute&lt;/key&gt;
&lt;string&gt;selected&lt;/string&gt;
&lt;key&gt;choiceIdentifier&lt;/key&gt;
&lt;string&gt;choice_zta&lt;/string&gt;
&lt;/dict&gt;
&lt;/array&gt;
&lt;/plist&gt;</string>
<key>file_mode</key>
<string>0755</string>
<key>file_path</key>
<string>%RECIPE_CACHE_DIR%/Scripts/InstallerChoices.xml</string>
</dict>
<key>Processor</key>
<string>FileCreator</string>
</dict>
<dict>
<key>Arguments</key>
<dict>
<key>file_content</key>
<string>&lt;!– Optional SecureClient installer settings are provided below. Configure the setting(s) as "true" (default "false" or commented out) to perform optional action(s) at install time. —&gt;
&lt;Transforms&gt;
&lt;DisableVPN&gt;%DISABLE_VPN%&lt;/DisableVPN&gt;
&lt;DisableCustomerExperienceFeedback&gt;%DISABLE_CUSTOMER_EXPERIENCE_FEEDBACK%&lt;/DisableCustomerExperienceFeedback&gt;
&lt;/Transforms&gt;</string>
<key>file_mode</key>
<string>0755</string>
<key>file_path</key>
<string>%RECIPE_CACHE_DIR%/Scripts/Profiles/ACTransforms.xml</string>
</dict>
<key>Processor</key>
<string>FileCreator</string>
</dict>
<dict>
<key>Arguments</key>
<dict>
<key>file_content</key>
<string>#!/bin/bash
packagePath="${0%/*}/CiscoSecureClient.pkg"
choicesXML="${0%/*}/InstallerChoices.xml"
# Set value in AutoPkg override, default is 1 for "true"
hideUninstallers="%HIDE_UNINSTALLERS%"
# Array of uninstall application bundles on the installer's target volume
if [[ -n $3 ]]; then
targetVolume=$3
else
targetVolume=""
fi
uninstallAppBundlePaths=(
"${targetVolume}/Applications/Cisco/Uninstall Cisco Secure Client – DART.app"
"${targetVolume}/Applications/Cisco/Uninstall Cisco Secure Client.app"
)
exitCode=0
# Run embedded installer with the Choice Changes XML
if [[ -r "${packagePath}" &amp;&amp; -r "${choicesXML}" ]]; then
if ! /usr/sbin/installer -applyChoiceChangesXML "${choicesXML}" -pkg "${packagePath}" -target "$3"; then
echo "Installation of package \"${packagePath}\" failed."
exitCode=1
fi
else
echo "Package \"${packagePath}\" not found."
exitCode=1
fi
# Hide uninstallers
# Override will specify 1 as "true"
# Set to another value to specify "false"
# If variable is unset/null or still contains an AutoPkg variable reference, treat as "true"
if [[ "${hideUninstallers}" -eq 1 || \
-z "${hideUninstallers}" || \
"${hideUninstallers}" == "%""HIDE_UNINSTALLERS""%" ]]; then
for uninstallAppBundlePath in "${uninstallAppBundlePaths[@]}"
do
if [[ -d "${uninstallAppBundlePath}" ]]; then
if /usr/bin/chflags hidden "${uninstallAppBundlePath}"; then
echo "Uninstaller app bundle \"${uninstallAppBundlePath}\" was hidden successfully."
else
echo "Uninstaller app bundle \"${uninstallAppBundlePath}\" was not hidden successfully."
exitCode=1
fi
else
echo "Uninstaller app bundle \"${uninstallAppBundlePath}\" was not found and cannot be hidden."
fi
done
else
echo "Uninstallers will not be hidden."
fi
exit "${exitCode}"</string>
<key>file_mode</key>
<string>0755</string>
<key>file_path</key>
<string>%RECIPE_CACHE_DIR%/Scripts/postinstall</string>
</dict>
<key>Processor</key>
<string>FileCreator</string>
</dict>
<dict>
<key>Arguments</key>
<dict>
<key>pkg_request</key>
<dict>
<key>chown</key>
<array />
<key>id</key>
<string>%PKGID%.%VENDOR%%SOFTWARETITLE1%%SOFTWARETITLE2%</string>
<key>pkgname</key>
<string>%VENDOR%_%SOFTWARETITLE1%_%SOFTWARETITLE2%_%SOFTWARETITLE3%_%version%</string>
<key>pkgroot</key>
<string>%RECIPE_CACHE_DIR%/pkgroot</string>
<key>pkgtype</key>
<string>flat</string>
<key>scripts</key>
<string>%RECIPE_CACHE_DIR%/Scripts</string>
<key>version</key>
<string>%version%</string>
</dict>
</dict>
<key>Processor</key>
<string>PkgCreator</string>
</dict>
<dict>
<key>Arguments</key>
<dict>
<key>path_list</key>
<array>
<string>%RECIPE_CACHE_DIR%/%VENDOR%</string>
<string>%RECIPE_CACHE_DIR%/pkgroot</string>
</array>
</dict>
<key>Processor</key>
<string>PathDeleter</string>
</dict>
</array>
</dict>
</plist>

Example VPN XML file:



This file contains 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"?>
<AnyConnectProfile xmlns="http://schemas.xmlsoap.org/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd">
<ClientInitialization>
<UseStartBeforeLogon UserControllable="true">false</UseStartBeforeLogon>
<AutomaticCertSelection UserControllable="false">true</AutomaticCertSelection>
<ShowPreConnectMessage>false</ShowPreConnectMessage>
<CertificateStore>All</CertificateStore>
<CertificateStoreOverride>true</CertificateStoreOverride>
<ProxySettings>Native</ProxySettings>
<AllowLocalProxyConnections>true</AllowLocalProxyConnections>
<AuthenticationTimeout>12</AuthenticationTimeout>
<AutoConnectOnStart UserControllable="true">false</AutoConnectOnStart>
<MinimizeOnConnect UserControllable="true">true</MinimizeOnConnect>
<LocalLanAccess UserControllable="true">true</LocalLanAccess>
<DisableCaptivePortalDetection UserControllable="false">false</DisableCaptivePortalDetection>
<ClearSmartcardPin UserControllable="false">true</ClearSmartcardPin>
<IPProtocolSupport>IPv4,IPv6</IPProtocolSupport>
<AutoReconnect UserControllable="false">true
<AutoReconnectBehavior UserControllable="false">DisconnectOnSuspend</AutoReconnectBehavior>
</AutoReconnect>
<AutoUpdate UserControllable="false">true</AutoUpdate>
<RSASecurIDIntegration UserControllable="false">Automatic</RSASecurIDIntegration>
<WindowsLogonEnforcement>SingleLocalLogon</WindowsLogonEnforcement>
<WindowsVPNEstablishment>LocalUsersOnly</WindowsVPNEstablishment>
<AutomaticVPNPolicy>false</AutomaticVPNPolicy>
<PPPExclusion UserControllable="false">Disable
<PPPExclusionServerIP UserControllable="false"></PPPExclusionServerIP>
</PPPExclusion>
<EnableScripting UserControllable="false">false</EnableScripting>
<EnableAutomaticServerSelection UserControllable="true">false
<AutoServerSelectionImprovement>20</AutoServerSelectionImprovement>
<AutoServerSelectionSuspendTime>4</AutoServerSelectionSuspendTime>
</EnableAutomaticServerSelection>
<RetainVpnOnLogoff>false</RetainVpnOnLogoff>
<AllowManualHostInput>true</AllowManualHostInput>
</ClientInitialization>
<ServerList>
<HostEntry>
<HostName>example.com/</HostName>
<HostAddress>example.com</HostAddress>
<UserGroup>example</UserGroup>
</HostEntry>
</ServerList>
</AnyConnectProfile>
view raw

example.xml

hosted with ❤ by GitHub

Example .pkg recipe override:



This file contains 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"&gt;
<plist version="1.0">
<dict>
<key>Identifier</key>
<string>local.pkg.CiscoSecureClient-AllModulesEnabled</string>
<key>Input</key>
<dict>
<key>CHOICE_DART</key>
<string>1</string>
<key>CHOICE_DUO</key>
<string>1</string>
<key>CHOICE_FIREAMP</key>
<string>1</string>
<key>CHOICE_ISEPOSTURE</key>
<string>1</string>
<key>CHOICE_NVM</key>
<string>1</string>
<key>CHOICE_POSTURE</key>
<string>1</string>
<key>CHOICE_THOUSANDEYES</key>
<string>1</string>
<key>CHOICE_UMBRELLA</key>
<string>1</string>
<key>CHOICE_VPN</key>
<string>1</string>
<key>CHOICE_WEBSECURITY</key>
<string>1</string>
<key>CHOICE_ZEROTRUST</key>
<string>1</string>
<key>CONTENT_XML</key>
<string>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;AnyConnectProfile xmlns=&quot;http://schemas.xmlsoap.org/encoding/&quot;
xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://schemas.xmlsoap.org/encoding/ AnyConnectProfile.xsd&quot;&gt;
&lt;ClientInitialization&gt;
&lt;UseStartBeforeLogon UserControllable=&quot;true&quot;&gt;false&lt;/UseStartBeforeLogon&gt;
&lt;AutomaticCertSelection UserControllable=&quot;false&quot;&gt;true&lt;/AutomaticCertSelection&gt;
&lt;ShowPreConnectMessage&gt;false&lt;/ShowPreConnectMessage&gt;
&lt;CertificateStore&gt;All&lt;/CertificateStore&gt;
&lt;CertificateStoreOverride&gt;true&lt;/CertificateStoreOverride&gt;
&lt;ProxySettings&gt;Native&lt;/ProxySettings&gt;
&lt;AllowLocalProxyConnections&gt;true&lt;/AllowLocalProxyConnections&gt;
&lt;AuthenticationTimeout&gt;12&lt;/AuthenticationTimeout&gt;
&lt;AutoConnectOnStart UserControllable=&quot;true&quot;&gt;false&lt;/AutoConnectOnStart&gt;
&lt;MinimizeOnConnect UserControllable=&quot;true&quot;&gt;true&lt;/MinimizeOnConnect&gt;
&lt;LocalLanAccess UserControllable=&quot;true&quot;&gt;true&lt;/LocalLanAccess&gt;
&lt;DisableCaptivePortalDetection UserControllable=&quot;false&quot;&gt;false&lt;/DisableCaptivePortalDetection&gt;
&lt;ClearSmartcardPin UserControllable=&quot;false&quot;&gt;true&lt;/ClearSmartcardPin&gt;
&lt;IPProtocolSupport&gt;IPv4,IPv6&lt;/IPProtocolSupport&gt;
&lt;AutoReconnect UserControllable=&quot;false&quot;&gt;true
&lt;AutoReconnectBehavior UserControllable=&quot;false&quot;&gt;DisconnectOnSuspend&lt;/AutoReconnectBehavior&gt;
&lt;/AutoReconnect&gt;
&lt;AutoUpdate UserControllable=&quot;false&quot;&gt;true&lt;/AutoUpdate&gt;
&lt;RSASecurIDIntegration UserControllable=&quot;false&quot;&gt;Automatic&lt;/RSASecurIDIntegration&gt;
&lt;WindowsLogonEnforcement&gt;SingleLocalLogon&lt;/WindowsLogonEnforcement&gt;
&lt;WindowsVPNEstablishment&gt;LocalUsersOnly&lt;/WindowsVPNEstablishment&gt;
&lt;AutomaticVPNPolicy&gt;false&lt;/AutomaticVPNPolicy&gt;
&lt;PPPExclusion UserControllable=&quot;false&quot;&gt;Disable
&lt;PPPExclusionServerIP UserControllable=&quot;false&quot;&gt;&lt;/PPPExclusionServerIP&gt;
&lt;/PPPExclusion&gt;
&lt;EnableScripting UserControllable=&quot;false&quot;&gt;false&lt;/EnableScripting&gt;
&lt;EnableAutomaticServerSelection UserControllable=&quot;true&quot;&gt;false
&lt;AutoServerSelectionImprovement&gt;20&lt;/AutoServerSelectionImprovement&gt;
&lt;AutoServerSelectionSuspendTime&gt;4&lt;/AutoServerSelectionSuspendTime&gt;
&lt;/EnableAutomaticServerSelection&gt;
&lt;RetainVpnOnLogoff&gt;false&lt;/RetainVpnOnLogoff&gt;
&lt;AllowManualHostInput&gt;true&lt;/AllowManualHostInput&gt;
&lt;/ClientInitialization&gt;
&lt;ServerList&gt;
&lt;HostEntry&gt;
&lt;HostName&gt;example.com/&lt;/HostName&gt;
&lt;HostAddress&gt;example.com&lt;/HostAddress&gt;
&lt;UserGroup&gt;example&lt;/UserGroup&gt;
&lt;/HostEntry&gt;
&lt;/ServerList&gt;
&lt;/AnyConnectProfile&gt;</string>
<key>DISABLE_CUSTOMER_EXPERIENCE_FEEDBACK</key>
<string>false</string>
<key>DISABLE_VPN</key>
<string>false</string>
<key>DOWNLOAD_URL</key>
<string>https://company.com/cisco-secure-client-macos-5.1.1.42-predeploy-k9.dmg</string>
<key>HIDE_UNINSTALLERS</key>
<string>1</string>
<key>NAME</key>
<string>Cisco Secure Client</string>
<key>PKGID</key>
<string>com.company.cisco.SecureClient</string>
<key>SOFTWARETITLE1</key>
<string>Secure</string>
<key>SOFTWARETITLE2</key>
<string>Client</string>
<key>SOFTWARETITLE3</key>
<string>All_Modules_Enabled</string>
<key>UMBRELLA_FINGERPRINT</key>
<string>2a7145a02f0b4b9799695b224af3f6c3</string>
<key>UMBRELLA_ORGANIZATION_ID</key>
<string>7775762</string>
<key>UMBRELLA_USER_ID</key>
<string>65034259</string>
<key>VENDOR</key>
<string>Cisco</string>
<key>VPN_XML</key>
<string>example.xml</string>
</dict>
<key>ParentRecipe</key>
<string>com.company.pkg.CiscoSecureClient-AllModulesEnabled</string>
<key>ParentRecipeTrustInfo</key>
<dict>
<key>non_core_processors</key>
<dict/>
<key>parent_recipes</key>
<dict>
<key>com.company.download.CiscoSecureClient</key>
<dict>
<key>path</key>
<string>~/Library/AutoPkg/RecipeRepos/com.company.autopkg_recipes/CiscoSecureClient.download.recipe</string>
<key>sha256_hash</key>
<string>711dc16d406d7a0197e507cbb227e058e974276743bd9108b0b8146525e256f6</string>
</dict>
<key>com.company.pkg.CiscoSecureClient-AllModulesEnabled</key>
<dict>
<key>path</key>
<string>~/Library/AutoPkg/RecipeRepos/com.company.autopkg_recipes/CiscoSecureClient-AllModulesEnabled.pkg.recipe</string>
<key>sha256_hash</key>
<string>845152bc12c86d485f5712c4361339250bc93f621ed3d02da4b88c3807d4c99f</string>
</dict>
</dict>
</dict>
</dict>
</plist>
Viewing all 764 articles
Browse latest View live