Cisco Secure Client Mac OS Ventura

Bmitchell34
New Contributor II

Howdy everyone, has anyone had any issues installing Cisco Secure Client in Ventura after packaging in composer?

7 REPLIES 7

joshuasee
Contributor III

What packaging are you doing and what problems are you seeing? There several routes to deploying it with customizations.

I have a wrapper package that throws the original in /tmp, then runs a postinstall script that calls the installer command line utility using a choices xml file. It works.

Cisco docs now recommend customizing the Cisco DMG with a choices file, which has the advantage of a friendlier experience for those manually installing it.

The adventurous could also modify the distribution file in the Cisco installer. 

I was using the PKG method I used for AnyConnect but during the script install - I get this error 

Installation failed. The installer reported: installer: Package name is Cisco Secure Client 5.0.05040

installer: Installing at base path /

installer: The install failed. (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance. The package is attempting to install content to the system volume.)

The pkg is signed and trusted but no go. 

I will try the DMG route. Thanks! 

That line "The package is attempting to install content to the system volume" is interesting (unless thats just the generic failed message and I never paid attention to the "system" volume part).  Are you getting that error when installing through Jamf or when testing the install manually?  If its manual testing, maybe you need to make sure Terminal or Installer (whatever is kicking off the install) has Full Disk Access permissions. Just a guess.

williamaddis
New Contributor III

Yeah, I use the choices file as opposed to trying to strip out individual installers like on older versions.  Never had issues with Ventura using this method.

junjishimazaki
Valued Contributor

Hi williamaddis, I stopped packing the Cisco client and scripted the entire installation. The only thing I upload to Jamf is the Cisco Secure Client installer. Then I create my script in Jamf. In the policy I add the package installer (I cache the installer not install) and I add the script. The script handles the installation and reads the choice file. This is my script: 

#!/bin/sh
echo "Creating xml file for AnyChoice"
 
# Creating cisco temp install folder
echo "Creating anyconnect temp folder"
mkdir -p /tmp/secure_Client_5_0
 
# Cisco application install choice XML file
echo "Creating anyconnect xml file at /private/tmp/secure_Client_5_0"
xmlPath1='/tmp/secure_Client_5_0/anyconnect_choices_5_0.xml'
 
cat <<EndXML > $xmlPath1
<?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">
<array>
    <dict>
        <key>attributeSetting</key>
        <integer>1</integer>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>choice_anyconnect_vpn</string>
    </dict>
<dict>
        <key>attributeSetting</key>
        <integer>0</integer>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>choice_fireamp</string>
    </dict>
    <dict>
        <key>attributeSetting</key>
        <integer>0</integer>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>choice_dart</string>
    </dict>
    <dict>
        <key>attributeSetting</key>
        <integer>1</integer>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>choice_secure_firewall_posture</string>
    </dict>
    <dict>
        <key>attributeSetting</key>
        <integer>0</integer>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>choice_iseposture</string>
    </dict>
      <dict>
        <key>attributeSetting</key>
        <integer>1</integer>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>choice_nvm</string>
    </dict>
     <dict>
        <key>attributeSetting</key>
        <integer>0</integer>
        <key>choiceAttribute</key>
        <string>selected</string>
        <key>choiceIdentifier</key>
        <string>choice_secure_umbrella</string>
    </dict>
</array>
</plist>
EndXML
 
echo "Installing Cisco Secure Client 5.0.02075..."
installer -applyChoiceChangesXML /tmp/secure_Client_5_0/anyconnect_choices_5_0.xml -pkg  /Library/Application\ Support/JAMF/Waiting\ Room/Cisco_Secure_Client_v5_02075.pkg -target / 

echo "Cleaning up..."
echo "Deleting anyconnect temp folder"
rm -rf /private/tmp/anyconnect_5_0/

echo "Deleting anyconnect cache files from waiting room"
rm -rf /Library/Application\ Support/JAMF/Waiting\ Room/Cisco_Secure_Client*
echo "Installation complete"
exit 0

Cool this works -- my only question is how do you import the json after the fact? 

Hi Bmitchell34, what json file are you referring to?