Packaging Maya 2022

skypointer
New Contributor II

Hi all, I'm wondering if anyone has had success in packaging Maya 2022 with a non-network server license key, which our institution is able to put on 1200 machines. I tried referencing this post, but havent been able to successfully deploy the program with my modifications. Any help would be appreciated. Thank you.

73 REPLIES 73

Sanchi
Contributor

Also looking for some info on this too

cgeorge
New Contributor III

Have you been successful in getting Maya 2022 to deploy and install? I'm using their documentation to build a silent installer, but it fails every time. I'm putting the Install Maya 2022.app in /tmp, and the script successfully launches it silent, but it errors out at install. I've tried it with users logged in, and no one logged in, and it fails every time.

scrnnmalrdychos
New Contributor

Someone at Autodesk mistyped the command in their silent install kb (https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/ENU/Autodesk-Installation-Basi...) and typed --q rather than a single - before the q.   See below for more on that.   My team has already communicated this error to Autodesk.

Please note:  The procedure below has been tested and confirmed to work successfully on supported macOS versions across, for the sake of propriety, enough systems at scale for enterprise level confidence.

  • Place the Install Maya 2022.app in the /tmp directory.  
  • Drag and drop into Composer.
  • Within Composer, navigate to Install Maya 2022.app and modify the Owner and Group to "root" and "wheel" and "Apply Owner and Group to Install Maya 2022.app and Enclosed Items."  (Please don't waste time posting comments regarding this step.  Remember... my deployment works.)
  • Add the following line into a postinstall script for your Source in Composer:

 

#!/bin/sh
## postinstall

sudo /private/tmp/Install\ Maya\ 2022.app/Contents/Helper/Setup.app/Contents/MacOS/Setup -q​

 

  • Save and Build as PKG...and tah-freaking-dah you have a working silent installer for Maya 2022. 

    There are caveats to this method, if you are using a legacy network license, etc., etc.  This, however, is the quickest path from point A to point B given the use case mentioned above.  For those that may want to poke holes, please recall that our deployment works.  Have a magical day!

Hello! I just edited my old Maya 2020 script from here: https://community.jamf.com/t5/jamf-pro/packaging-maya-2020/td-p/229754

 

Below is the updated code for Maya 2022. It has an option to input your server if you do have a network license. This script also requires you to put Install Maya 2022.app in the /tmp/ folder. You will need to package that move. I used composer.

#!/bin/sh

#Instructions for next time
#Import install disk image with munkiimport
#Change installer_type to copy_from_dmg
#Copy installer app to /tmp
#Modify values below as necessary (Usually: year and pKey)

#Set variables

year="2022"
pkgPath1="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/MayaUSD.pkg"
pkgPath2="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/Maya_AdLMconf2022.pkg"
pkgPath3="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Licensing/adlmflexnetserverIPV6.pkg"
pkgPath4="/tmp/Install Maya 2022.app/Contents/Helper/Packages/AdSSO/AdSSO-v2.pkg"
pkgpath4a="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Licensing/adlmframework18.pkg"
pkgPath5="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Licensing/AdskLicensing-11.0.0.4854-mac-installer.pkg"
pkgPath6="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/Maya_core2022.pkg"
pkgPath7="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/bifrost.pkg"
pkgPath8="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/MtoA.pkg"
pkgPath9="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/SubstanceInMaya-2.1.9-2022-Darwin.pkg"
pkgPath10="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/motion-library.maya2022-2.0.0.pkg"
pkgPath11="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/Pymel2022.pkg"

pKey="657N1"
networkServer="[your server]"
licPath="/Library/Application Support/Autodesk/AdskLicensingService/${pKey}_${year}.0.0.F"
licFile="LICPATH.lic"
lgsFile="LGS.data"

#Declare functions

runInstaller ()
{
    /usr/sbin/installer -verboseR -pkg "${pkgPath1}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath2}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath3}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath4}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath4a}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath5}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath6}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath7}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath8}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath9}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath10}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath11}" -target /
}

createLicenseFiles ()
{
    if [[ ! -e "${licPath}" ]];
    then
        /bin/mkdir "${licPath}"
    fi
    /usr/bin/touch "${licPath}/${lgsFile}"
    /bin/chmod 777 "${licPath}/${lgsFile}"
    /usr/bin/touch "${licPath}/${licFile}"
    /bin/chmod 777 "${licPath}/${licFile}"
    /bin/echo "SERVER ${networkServer} 000000000000" > "${licPath}/${licFile}"
    /bin/echo "USE_SERVER" >> "${licPath}/${licFile}"
    /bin/echo "_NETWORK" >> "${licPath}/${lgsFile}"
}
licenceHelper ()
{
    /Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper change --pk "${pKey}" --pv "${year}.0.0.F" --lm NETWORK --ls "${networkServer}"
}
cleanUp ()
{
    /bin/rm -rf "${pkgPath}"
    /bin/rm -rf "${tmpfile}"
}

#Run script
runInstaller
createLicenseFiles
licenceHelper
cleanUp

 

Thanks for this, really helpful indeed. I customised it slightly for register rather than change the license and also added my distribution server element to it

/Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper register --pk "${pKey}" --pv "${year}.0.0.F" --lt "${lic_server_type}" --lt DISTRIBUTED --lm NETWORK --ls "${networkServer}" --sn 572-13572357 --el UK --cf /Applications/Autodesk/maya2022/adlmreg/MayaConfig.pit --nu

ekuehn
New Contributor II

For those of you looking for a STANDALONE deployment check out @robertojok's  solution here. Amazing! Thank you @robertojok 

Here is the full script for 2023 Standalone Serial

#!/bin/sh

#Instructions for next time
#Copy installer app to /tmp using Composer package
#Modify values below as necessary (Usually: year pKey and serial)
#Make sure to check pkgPath1-10 match latest installer

#Set variables

year="2023"
pkgPath1="/tmp/Install Maya 2023.app/Contents/Helper/Packages/Maya/MayaUSD.pkg"
pkgPath2="/tmp/Install Maya 2023.app/Contents/Helper/Packages/Maya/Maya_AdLMconf2023.pkg"
pkgPath3="/tmp/Install Maya 2023.app/Contents/Helper/Packages/Licensing/adlmflexnetserverIPV6.pkg"
pkgPath4="/tmp/Install Maya 2023.app/Contents/Helper/Packages/AdSSO/AdSSO-v2.pkg"
pkgpath4a="/tmp/Install Maya 2023.app/Contents/Helper/Packages/Licensing/adskflexnetserverIPV6.pkg"
pkgPath5="/tmp/Install Maya 2023.app/Contents/Helper/Packages/Licensing/AdskLicensing-12.1.0.7121-mac-installer.pkg"
pkgPath6="/tmp/Install Maya 2023.app/Contents/Helper/Packages/Maya/Maya_core2023.pkg"
pkgPath7="/tmp/Install Maya 2023.app/Contents/Helper/Packages/Maya/bifrost.pkg"
pkgPath8="/tmp/Install Maya 2023.app/Contents/Helper/Packages/Maya/MtoA.pkg"
pkgPath9="/tmp/Install Maya 2023.app/Contents/Helper/Packages/Maya/AdobeSubstance3DforMaya-2.2.3-2023-Darwin.pkg"
pkgPath10="/tmp/Install Maya 2023.app/Contents/Helper/Packages/Maya/Pymel2023.pkg"

pKey="657O1"
serial="573-08068767"
licPath="/Library/Application Support/Autodesk/AdskLicensingService/${pKey}_${year}.0.0.F"
licFile="LICPATH.lic"
lgsFile="LGS.data"

#Declare functions

runInstaller ()
{
    /usr/sbin/installer -verboseR -pkg "${pkgPath1}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath2}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath3}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath4}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath4a}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath5}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath6}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath7}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath8}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath9}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath10}" -target /
}

createLicenseFiles ()
{
    if [[ ! -e "${licPath}" ]];
    then
        /bin/mkdir "${licPath}"
    fi
    /usr/bin/touch "${licPath}/${lgsFile}"
    /bin/chmod 777 "${licPath}/${lgsFile}"
    /usr/bin/touch "${licPath}/${licFile}"
    /bin/chmod 777 "${licPath}/${licFile}"
    /bin/echo "SERVER ${networkServer} 000000000000" > "${licPath}/${licFile}"
    /bin/echo "USE_SERVER" >> "${licPath}/${licFile}"
    /bin/echo "_NETWORK" >> "${licPath}/${lgsFile}"
}
licenceHelper ()
{
        /Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper register --pk ${pKey} --pv ${year}.0.0.F --lm STANDALONE --sn ${serial} --cf /Applications/Autodesk/maya2023/adlmreg/MayaConfig.pit --nu
}
cleanUp ()
{
    /bin/rm -rf "${pkgPath}"
    /bin/rm -rf "${tmpfile}"
}

#Run script
runInstaller
createLicenseFiles
licenceHelper
cleanUp

 

 

 

 

Thank you!

rphewitt
New Contributor II

Any chance you have an updated 2023 version of this?

glennt
New Contributor II

Hi, our devices are running Monterey 12.5.1. Do you know if your script is compatible with this version? Tnx

ekuehn
New Contributor II

Thanks! This was painless!

lakem
New Contributor II

Hi all. I am looking for a script to install Maya & Mudbox 2022 which has a network license. I have tried to modify your script @pclyttle (thanks for supplying), however I am not entirely sure which line to include a serial-key for both Maya and Mudbox.

Any help will be appreciated. Thanks.

ekuehn
New Contributor II

Hi Lakem. These instructions are for a network license. Use them if you have a server set up to license your computers instead of a standalone serial #.

lakem
New Contributor II

Hi @ekuehn. Thanks for the reply. This is what I had thought going by the detail in the script, however, after installation and then opening Maya, it still asks for a serial number or to select other license options.

I will check the script and installation again and see what I can figure out.

Thanks

pclyttle
New Contributor II

Double-check that it's pointing to the correct server address and the server is setup properly/up-to-date

lakem
New Contributor II

Hi @pclyttle. Thanks for the reply. Server address is correct and appears to be ok.

One thing I have noticed is adlmframework18.pkg (Install Maya 2022.app/Contents/Helper/Packages/Licensing/adlmframework18.pkg) is missing from my downloaded Install Maya 2022.dmg.

Now when I run the script, I get

connecting to Service failed: reading configuration file /Library/Application Support/Autodesk/AdskLicensingService/AdskLicensingService.data failed: open /Library/Application Support/Autodesk/AdskLicensingService/AdskLicensingService.data: no such file or directory

And this is correct, the file does not exist.

pclyttle
New Contributor II

Okay, take it out. It was in my version.

lakem
New Contributor II

Ok, good news. I now have got a bit further and Maya is now launching (thank you). However, I need to be able to install and license both Maya 2022 and Mudbox 2022 on our Macs, which of course both have different product keys (657N1 and 498N1) and the below line will only cater for one or the other.

/Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper change --pk "${pKey}" --pv "${year}.0.0.F" --lm NETWORK --ls "${networkServer}"

 I am now looking for a way to be able to have both apps installed and be happy. I will let you know what I find.

lakem
New Contributor II

For those interested, I use the below to install and license both Maya and Mudbox 2022. It may not be the most tidy but it appears to work for me now. Thanks again all, for the help.

#!/bin/sh

#Copy installer app from .dmg to /tmp
#Modify values below as necessary (Usually: year and pKey)

#Set variables

year="2022"
pkgPath1="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/MayaUSD.pkg"
pkgPath2="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/Maya_AdLMconf2022.pkg"
pkgPath3="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Licensing/adlmflexnetserverIPV6.pkg"
pkgPath4="/tmp/Install Maya 2022.app/Contents/Helper/Packages/AdSSO/AdSSO-v2.pkg"
pkgPath5="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Licensing/AdskLicensing-11.0.0.4854-mac-installer.pkg"
pkgPath6="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/Maya_core2022.pkg"
pkgPath7="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/bifrost.pkg"
pkgPath8="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/MtoA.pkg"
pkgPath9="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/SubstanceInMaya-2.1.9-2022-Darwin.pkg"
pkgPath10="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/motion-library.maya2022-2.0.0.pkg"
pkgPath11="/tmp/Install Maya 2022.app/Contents/Helper/Packages/Maya/Pymel2022.pkg"

mayapKey="657N1"
networkServer="licServerFQDN.org"
mayalicPath="/Library/Application Support/Autodesk/AdskLicensingService/${mayapKey}_${year}.0.0.F"
mayalicFile="LICPATH.lic"
mayalgsFile="LGS.data"

#Mudbox

pkgPath12="/tmp/Install Mudbox 2022.app/Contents/Packages/ADLM/AdSSO-v2.pkg"
pkgPath13="/tmp/Install Mudbox 2022.app/Contents/Packages/ADLM/AdskLicensing-11.0.0.4854-mac-installer.pkg"
pkgPath14="/tmp/Install Mudbox 2022.app/Contents/Packages/ADLM/adlmflexnetserverIPV6.pkg"
pkgPath15="/tmp/Install Mudbox 2022.app/Contents/Packages/Mudbox/Mudbox_AdLMconf2022.pkg"
pkgPath16="/tmp/Install Mudbox 2022.app/Contents/Packages/Mudbox/Mudbox_core2022.pkg"

mudboxpKey="498N1"
mudboxlicPath="/Library/Application Support/Autodesk/AdskLicensingService/${mudboxpKey}_${year}.0.0.F"
mudboxlicFile="LICPATH.lic"
mudboxlgsFile="LGS.data"

#Declare functions

runInstaller ()
{
    /usr/sbin/installer -verboseR -pkg "${pkgPath1}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath2}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath3}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath4}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath5}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath6}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath7}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath8}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath9}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath10}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath11}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath12}" -target /		#Mudbox
    /usr/sbin/installer -verboseR -pkg "${pkgPath13}" -target /		#Mudbox
    /usr/sbin/installer -verboseR -pkg "${pkgPath14}" -target /		#Mudbox
    /usr/sbin/installer -verboseR -pkg "${pkgPath15}" -target /		#Mudbox
    /usr/sbin/installer -verboseR -pkg "${pkgPath16}" -target /		#Mudbox
}

createMayaLicenseFiles ()
{
    if [[ ! -e "${mayalicPath}" ]];
    then
        /bin/mkdir "${mayalicPath}"
    fi
    /usr/bin/touch "${mayalicPath}/${mayalgsFile}"
    /bin/chmod 777 "${mayalicPath}/${mayalgsFile}"
    /usr/bin/touch "${mayalicPath}/${mayalicFile}"
    /bin/chmod 777 "${mayalicPath}/${mayalicFile}"
    /bin/echo "SERVER ${networkServer} 000000000000" > "${mayalicPath}/${mayalicFile}"
    /bin/echo "USE_SERVER" >> "${mayalicPath}/${mayalicFile}"
    /bin/echo "_NETWORK" >> "${mayalicPath}/${mayalgsFile}"
}

createMudboxLicenseFiles ()
{
    if [[ ! -e "${mudboxlicPath}" ]];
    then
        /bin/mkdir "${mudboxlicPath}"
    fi
    /usr/bin/touch "${mudboxlicPath}/${mudboxlgsFile}"
    /bin/chmod 777 "${mudboxlicPath}/${mudboxlgsFile}"
    /usr/bin/touch "${mudboxlicPath}/${mudboxlicFile}"
    /bin/chmod 777 "${mudboxlicPath}/${mudboxlicFile}"
    /bin/echo "SERVER ${networkServer} 000000000000" > "${mudboxlicPath}/${mudboxlicFile}"
    /bin/echo "USE_SERVER" >> "${mudboxlicPath}/${mudboxlicFile}"
    /bin/echo "_NETWORK" >> "${mudboxlicPath}/${mudboxlgsFile}"
}

MayalicenceHelper ()
{
    /Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper change --pk "${mayapKey}" --pv "${year}.0.0.F" --lm NETWORK --ls "${networkServer}"
    
}

MudboxlicenceHelper ()
{
    /Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper change --pk "${mudboxpKey}" --pv "${year}.0.0.F" --lm NETWORK --ls "${networkServer}"
    
}

cleanUp ()
{
    /bin/rm -rf "${pkgPath}"
    /bin/rm -rf "${tmpfile}"
}

#Run script
runInstaller
createMayaLicenseFiles
createMudboxLicenseFiles
MayalicenceHelper
MudboxlicenceHelper
cleanUp

 

vbang
New Contributor

Hi all,

First time here and I'm new to scripting. I was inspired by the scripts mentioned in this post to do my own script. I took the "Setup" binary approach to carry out a silent install. I found it a tad reliable versus pkg installers.  I also wanted to encompass the idea of installing other Autodesk products within a single script. I have tested Maya 2022, Mudbox 2022 and AutoCAD 2022. Stuck on getting Maya 2018 to activate. Well, here's my script and apologies if it doesn't work for you.

#!/bin/bash

#v1: 05/10/2021 - Vi

# Product keys
# Maya 2022: 657N1
# Maya 2018: 657J1
# Mudbox 2022: 498N1
# AutoCAD 2022: 777N1

# The installation is reliant on the setup binary. The binary command varies across Autodesk products.
# For example, Mudox 2022 and Maya 2022 uses the --noui switch, and Maya 2022 and AutoCAD uses the -q switch
# for triggering silent install. The path of the binary also varies.

# Tested on Maya 2022, Mudbox 2022 and AutoCAD 2022 - all good.

# Next work:
# Replace nested if statements. Can't keep adding new if statements for newer Autodesk versions.
# Helper binary path may change in future releases, use the find command.

########################################################################

# Set variables
pName="${4}"
pYear="${5}"
pKey="${6}"
licServer="{enter your lic server here}"
tmpFolder="/usr/local/tmp" # Installer app goes here. For example: /usr/local/tmp/Maya 2022/Install Maya 2022.app
findSetupFiles=$(find $tmpFolder -iname "setup")
licenseHelper="/Library/Application Support/Autodesk/AdskLicensing/11.0.0.4854/helper/AdskLicensingInstHelper"
currentuser=`python -c 'from SystemConfiguration import SCDynamicStoreCopyConsoleUser; import sys; username = (SCDynamicStoreCopyConsoleUser(None, None, None) or [None])[0]; username = [username,""][username in [u"loginwindow", None, u""]]; sys.stdout.write(username + "\n");'`

########################################################################

clear

# Scan Autodesk setup files in tmp folder.
echo ">> Autodesk setup file(s) found:"
echo "$findSetupFiles"

########################################################################

# Define functions

InstallMaya ()
{

# Locate full path to Maya setup file
MayaSetupFile=$(find $tmpFolder -iname "setup" | grep -w "Maya $pYear")

if [[ -f $MayaSetupFile ]] && [[ $pName = "Maya" ]]; then
echo ">> Maya $pYear setup file found."
echo ">> Running setup file: $MayaSetupFile"

if [[ $pYear = 2022 ]]; then
echo ">> Installing Maya 2022"
sudo "$MayaSetupFile" -q --hide_eula
fi
if [[ $pYear = 2018 ]]; then
echo ">> Installing Maya 2018"
sudo "$MayaSetupFile" --noui
fi
sleep 5

# Run licensing helper
echo ">> Running Maya licensing helper"
sudo "$licenseHelper" change --pk "$pKey" --pv "$pYear.0.0.F" --lm NETWORK --ls "$licServer"

else
if [[ $pName = "Maya" ]]; then
echo ">> Maya $pYear setup file not found. Nothing to do."
fi
fi

}
########################################################################
InstallAutoCAD ()
{
AutoCADSetupFile=$(find $tmpFolder -iname "setup" | grep "AutoCAD 2022")
echo "$AutoCADSetupFile"

if [[ -f $AutoCADSetupFile ]] && [[ $pName = "AutoCAD" ]]; then
echo ">> AutoCAD $pYear setup file found."
echo ">> Installing AutoCAD $pYear."
echo ">> Running setup file: $AutoCADSetupFile"
sudo "$AutoCADSetupFile" -q --hide_eula

# Fix permission for AutoCAD
/bin/chmod 777 /Users/$currentuser/Library/Application\ Support/Autodesk

sleep 5

# Run licensing helper
echo ">> Run AutoCAD licensing helper"
sudo "$licenseHelper" change --pk "$pKey" --pv "$pYear.0.0.F" --lm NETWORK --ls "$licServer"

else
if [[ $pName = "AutoCAD" ]]; then
echo ">> AutoCAD $pYear setup file not found. Nothing to do."
fi
fi

}
########################################################################
InstallMudbox ()
{
MudboxSetupFile=$(find $tmpFolder -iname "setup" | grep -w "Mudbox $pYear")

if [[ -f $MudboxSetupFile ]] && [[ $pName = "Mudbox" ]]; then
echo ">> Mudbox $pYear setup file found."
echo ">> Installing Mudbox 2022."
echo ">> Running setup file: $MudboxSetupFile"
sudo "$MudboxSetupFile" --noui

sleep 5

# Run licensing helper
echo ">> Running Mudbox licensing helper"
sudo "$licenseHelper" change --pk "$pKey" --pv "$pYear.0.0.F" --lm NETWORK --ls "$licServer"

else
if [[ $pName = "Mudbox" ]]; then
echo ">> Mudbox $pYear setup file not found. Nothing to do."
fi
fi

}
########################################################################
# Clean up tmp installer.
cleanUp ()
{
echo ">> Removing installation file in tmp folder."
/bin/rm -rf "$tmpFolder/$pName $pYear"
}
########################################################################

# Troubleshoot licensing issues
TroubleshootLicense ()
{
sudo "$licenseHelper" change --pk "657J1" --pv "2018.0.0.F" --lm NETWORK --ls ""

}
########################################################################

# Run functions
InstallMaya
InstallAutoCAD
InstallMudbox
cleanUp
# TroubleshootLicense

cgalik
Contributor

Has anyone successfully deployed and licensed either Maya 2022 or Mudbox 2022 on an M1 mac?  The installation seems to go through fine, but when either application is launched, Autodesk Licensing Manager crashes.

pbellwood
New Contributor II

Just a note for anyone else looking at this thread, newer Autodesk Products (2020 and above) have a bootstrap process via their Autodesk On-Demand Install Service (AdODIS).

AdODIS, is basically an installer framework that deals with pre, post and installation tasks, much like a package file oddly! While AdODIS seems overly complex and silly, It's done this way to be platform agnostic for their developers.

The 'Install' app bundle inside the DMGs usually have an additional 'Helper' folder in them, which you can browse though to a 'Setup' app bundle, the setup bundle is the AdODIS client.

Check out the parameters on the binary Setup.app/Contents/MacOS/Setup in terminal for some help with the silent install options

Details here for AutoCAD: https://www.autodesk.com/support/download-install/admins/create-deployments/create-deployments-for-a...

Note: Autodesk documented single dashes, instead of double dashes for AutoCAD😣, you need to check the provided Setup binary for the right format for the software you're installing.

With this info, your workflow should hopefully be something like this, using AutoCAD 2022 as an example:

  • Dump the DMG somewhere and mount it
  • Run as privileged user

 

/Volumes/Installer/Install Autodesk AutoCAD 2022 for Mac/Helper/Setup/Contents/MacOS/Setup --silent

 

Note: if you run setup via sudo, your users ~/Library/Application Support/Autodesk folder might get messed up, delete / adjust permissions prior to running the app to avoid the error message about it being locked / non-writable

Obviously adjust accordingly for the software your installing (such as Maya), the process is the same, and you can script around this for maintainability.

My key take away however is avoid installing the package files directly as some previous examples have suggested, AdODIS does a lot of magic behind the scenes to make the software work.

Hope this helps someone 👍

kwoodard
Valued Contributor

So how do you integrate this into Jamf to deploy software out to labs? The first article seems to say to put the installer onto a network share, then run the script to install the software. How would we do this with Jamf and say a home user?

kwoodard
Valued Contributor

I am feeling very stupid at the moment. All of these scripts say to put the installer.app onto the computers in the tmp folder. When I am trying to put said app into Jamf Admin, I am getting a message stating that the only app I can put onto Jamf are Apple apps. How are you uploading the app to your Jamf DP? Are you keeping it in the DMG file?

pbellwood
New Contributor II

The examples are 'installing' the installation files to the client, for future deletion, there's many ways really ... 

https://docs.jamf.com/10.28.0/jamf-pro/administrator-guide/Package_Management.html might give you some help? Particularly the Package Upload Methods section

We're using an installer package (pkg) with a post install script, the package dumps the DMG in /tmp, and the post install script deals with the mount and the actual installation of AutoCAD/Maya via the AdODIS Setup command

kwoodard
Valued Contributor

So, how are you creating the package, Composer? Post install script I am assuming is the script you have listed in the thread above.

The package management link doesn't tell me anything new...

mgshepherd
Contributor

That time of year again to start updating software. Here's the updated script for Maya 2023, just had to do some small changes. This script assumes you have the installer located in /tmp.

 

#!/bin/zsh

#Set variables

year="2023"
pkgPath1="/tmp/AutoDesk/Install Maya 2023.app/Contents/Helper/Packages/Maya/MayaUSD.pkg"
pkgPath2="/tmp/AutoDesk/Install Maya 2023.app/Contents/Helper/Packages/Maya/Maya_AdLMconf2023.pkg"
pkgPath3="/tmp/AutoDesk/Install Maya 2023.app/Contents/Helper/Packages/Licensing/adskflexnetserverIPV6.pkg"
pkgPath4="/tmp/AutoDesk/Install Maya 2023.app/Contents/Helper/Packages/AdSSO/AdSSO-v2.pkg"
pkgPath5="/tmp/AutoDesk/Install Maya 2023.app/Contents/Helper/Packages/Licensing/AdskLicensing-12.0.0.6529-mac-installer.pkg"
pkgPath6="/tmp/AutoDesk/Install Maya 2023.app/Contents/Helper/Packages/Maya/Maya_core2023.pkg"
pkgPath7="/tmp/AutoDesk/Install Maya 2023.app/Contents/Helper/Packages/Maya/bifrost.pkg"
pkgPath8="/tmp/AutoDesk/Install Maya 2023.app/Contents/Helper/Packages/Maya/MtoA.pkg"
pkgPath9="/tmp/AutoDesk/Install Maya 2023.app/Contents/Helper/Packages/Maya/AdobeSubstance3DforMaya-2.2.2-2023-Darwin.pkg"
pkgPath10="/tmp/AutoDesk/Install Maya 2023.app/Contents/Helper/Packages/Maya/Pymel2023.pkg"


pKey="657O1"
networkServer="SERVER NAME"
licPath="/Library/Application Support/Autodesk/AdskLicensingService/${pKey}_${year}.0.0.F"
licFile="LICPATH.lic"


#Declare functions

runInstaller ()
{
    /usr/sbin/installer -verboseR -pkg "${pkgPath1}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath2}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath3}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath4}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath5}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath6}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath7}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath8}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath9}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath10}" -target /
}

createLicenseFiles ()
{
    if [[ ! -e "${licPath}" ]];
    then
        /bin/mkdir "${licPath}"
    fi
    /usr/bin/touch "${licPath}/${licFile}"
    /bin/chmod 777 "${licPath}/${licFile}"
    /bin/echo "SERVER ${networkServer} 000000000000" > "${licPath}/${licFile}"
    /bin/echo "USE_SERVER" >> "${licPath}/${licFile}"
}
licenceHelper ()
{
    /Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper change --pk "${pKey}" --pv "${year}.0.0.F" --lm NETWORK --ls "${networkServer}"
}
cleanUp ()
{
    /bin/rm -rf "${pkgPath}"
    /bin/rm -rf "${tmpfile}"
}

Run script
runInstaller
createLicenseFiles
licenceHelper
cleanUp

 

kwoodard
Valued Contributor

Is there anything special to getting their other products installed? We use the whole suite...

cgeorge
New Contributor III

Here is the code I modified for Mudbox 2023. It shouldn't be hard to adapt it for the other Autodesk products. Key things to change for other softwares are pkgPaths, pKey, and networkServer, unless they use a pkg like the Fusion lab installer, then it's plug and play.

#!/bin/zsh

#Set variables

year="2023"
pkgPath1="/tmp/Autodesk/Install Mudbox 2023.app/Contents/Packages/Mudbox/Mudbox_core2023.pkg"
pkgPath2="/tmp/Autodesk/Install Mudbox 2023.app/Contents/Packages/Mudbox/Mudbox_AdLMconf2023.pkgg"
pkgPath3="/tmp/Autodesk/Install Mudbox 2023.app/Contents/Packages/ADLM/adskflexnetserverIPV6.pkg"
pkgPath4="/tmp/Autodesk/Install Mudbox 2023.app/Contents/Packages/ADLM/AdSSO-v2.pkg"
pkgPath5="/tmp/Autodesk/Install Mudbox 2023.app/Contents/Packages/ADLM/AdskLicensing-12.0.0.6529-mac-installer.pkg"


pKey="498O1"
networkServer="SERVER NAME OR IP"
licPath="/Library/Application Support/Autodesk/AdskLicensingService/${pKey}_${year}.0.0.F"
licFile="LICPATH.lic"


#Declare functions

runInstaller ()
{
    /usr/sbin/installer -verboseR -pkg "${pkgPath1}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath2}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath3}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath4}" -target /
    /usr/sbin/installer -verboseR -pkg "${pkgPath5}" -target /

}

createLicenseFiles ()
{
    if [[ ! -e "${licPath}" ]];
    then
        /bin/mkdir "${licPath}"
    fi
    /usr/bin/touch "${licPath}/${licFile}"
    /bin/chmod 777 "${licPath}/${licFile}"
    /bin/echo "SERVER ${networkServer} 000000000000" > "${licPath}/${licFile}"
    /bin/echo "USE_SERVER" >> "${licPath}/${licFile}"
}
licenceHelper ()
{
    /Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper change --pk "${pKey}" --pv "${year}.0.0.F" --lm NETWORK --ls "${networkServer}"
}
cleanUp ()
{
    /bin/rm -rf "${pkgPath}"
    /bin/rm -rf "${tmpfile}"
}

Run script
runInstaller
createLicenseFiles
licenceHelper
cleanUp

  

glennt
New Contributor II

Our institution has three license servers. Ho do I populate 'networkServer=' correctly with the license server names/IPs?

kwoodard
Valued Contributor

Autodesk’s guide states to separate them by a “ ; ” but I was not able to get that to work. 

glennt
New Contributor II

Thanks for responding. Yeah, same here, no joy!

@mgshepherd Does Autodesk's own silent installer still not work properly then? e.g. as documented here? https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2023/ENU/Maya-Ins...

 

EDIT: having now tried it myself I can confirm their new installation process works great, no problems. Does anyone know if there's a way to suppress the Data Privacy dialog that comes up at first launch? Other than that everything looks great.

 

EDIT 2: although now I've packaged it with Composer, I'm finding it doesn't work as a package with a postinstall script? what's that all about?

 

EDIT 3: so if I split up the files and the script into separate things (i.e. have a package that just puts the files on the machine, and then have the install command in a separate script) this works. what's different about the environment of a postinstall script in a package installer?

 

Aaand of course Mudbox 2023 uses a completely different installer :(

rstasel
Valued Contributor

fwiw, running into odd issues myself. Maya has documentation for network deployment using the setup binary and feeding it an xml. AutoCAD doesn't seem to support this, and when I run setup --silent via a postinstall script, it hits some error then backs out the install. =(

kwoodard
Valued Contributor

I had a similar headache with Corel Painter. Three separate parts to get it installed. 

glennt
New Contributor II

Have you encountered any issues with macOS Monterey 12.5.1?

rphewitt
New Contributor II

I edited the original script because I needed it quick and I haven't had any issues. FWIW

jonw
Contributor

Just thought I'd share my latest solution to silently install 2023 versions of AutoCAD, Maya & Mudbox with network licenses, while at the login window (aka a lab/classroom install).  My goal was to make it as simple to use and to modify as possible.  I've been using a variation of methods shared here for years (thanks by the way!) but decided it was time to really get to the bottom of things for myself. 

It's a mashup of Autodesk's 'legit' install method with a simplified version of the custom network licensing steps we all know & love.  However I do make note of the 'legit' network license registration steps for those who care, or are curious as I was (it does work, I just prefer the custom method). All details are in the script.


I've only deployed to macOS 12.4 Intel & Silicon, so ymmv, but I'm happy to report it's working perfectly for me on over 100 stations so far. Enjoy!

 

 

#!/bin/zsh

### Install AutoDesk Combo 2023 (AutoCAD, Maya & MudBox) 
### silently @ login window with network licenses (aka multi-user lab/classroom deploy)

### 2022.07.27 by JonW 

### Simply update variables/products below the function section as desired
### Read the additional details at the end of the script for more clarity on licensing.

### Ensure:
### 1) installer app(s) re-packed from .dmg by Composer & deployed to /private/tmp (root:wheel 755)
### 2) the network license server is functional
### 3) optionally, that previous Autodesk installations have been removed.
### and if so, you've also unloaded com.autodesk.AdskLicensingService.plist

#################################################


installFunction ()
{
	### Before install, clear quarantine that may step on Setup.app when run at the login window.
	### Also as of 2023, Mudbox still uses a different setup app path with --noui flag NOT --silent
	### Finally, remove the installer app when complete
	
	/usr/bin/xattr -rc /private/tmp/"${installerApp}" 
	
	if echo "$installerApp" | grep -iq "Mudbox"; then
		/private/tmp/"${installerApp}"/Contents/MacOS/setup --noui 
	else
		/private/tmp/"${installerApp}"/Contents/Helper/Setup.app/Contents/MacOS/Setup --silent
	fi
	
	/bin/rm -rf /private/tmp/"${installerApp}"
}



licenseFunction ()
{
	### based off Onkstons's terrific work (I think they we're the first?) but simplified for 2023.
	### see also, addl details at the end of script for alternative 'legit' licensing method.
	licensePath="/Library/Application Support/Autodesk/AdskLicensingService/${productKey}_${year}.0.0.F"
	/bin/mkdir -p "${licensePath}"
	/usr/bin/touch "${licensePath}/licpath.lic"
	/bin/echo "SERVER ${networkServer} 000000000000" > "${licensePath}/licpath.lic"
	/bin/echo "USE_SERVER" >> "${licensePath}/licpath.lic"
	
	/Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper change --pk "${productKey}" --pv "${year}.0.0.F" --lm NETWORK --ls "${networkServer}"
}


#################################################


networkServer="your.network.license.server.here"

### AutoCAD
productKey="777O1"
year="2023"
installerApp="Install Autodesk AutoCAD 2023 for Mac.app"
installFunction
licenseFunction


### Maya
productKey="657O1"
year="2023"
installerApp="Install Maya 2023.app"
installFunction
licenseFunction


### Mudbox
productKey="498O1"
year="2023"
installerApp="Install Mudbox 2023.app"
installFunction 
licenseFunction



#################################################

### Verify license details - not required, but kind of nice to see.
/Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper list
echo "Autodesk network licensing complete"


##################################################


### Additional network license details:
### For those who are curious, or if the above ever ceases to function:

### The 'legit' method for initial silent license registration (using autoCAD as an example) uses the 'register' command instead of 'change'. 
### It also requires use of the --cf flag to denote a path to the app's config (.pit) file.

### e.g.
### configFile="/Library/Application Support/Autodesk/ADLM/.config/ProductInformation.pit"
### /Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper register --pk "${productKey}" --pv "${year}.0.0.F" --cf "${configFile}" --lm NETWORK --ls "${networkServer}"

### The end result is the same as the 'change' method used above (at least after the initial app launch).
### Essentially the 'change' method works backwards to manually create the licpath.lic directory & file, 
### then uses the 'change' command to register it.

### Anecdotally, the 'change' method appears to produce a slightly faster initial app launch, 
### but it's hard to say which is better.
### Either way, it's good to know both & having handle on the AdskLicensingInstHelper utility helps a lot!

### Check these out >>>
### /Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper register --help
### /Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper change --help

### Also, either method seems to deploy fine while at the login window, so no worries there.

### Some good tips & reference:
### https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/Use-Installer-Helper.html
### https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/ENU/Autodesk-Installation-Basic-ODIS/files/ODIS-silent-install-htm.html


### Hope this helps some folks out!  

 

 

 

kwoodard
Valued Contributor

Beautiful work! I love it! Thank you @jonw ! I have a question though... Are all those 000000000000 supposed to be like that, or do I have to substitute something in its place?

licenseFunction ()
{
	### based off Onkstons's terrific work (I think they we're the first?) but simplified for 2023.
	### see also, addl details at the end of script for alternative 'legit' licensing method.
	licensePath="/Library/Application Support/Autodesk/AdskLicensingService/${productKey}_${year}.0.0.F"
	/bin/mkdir -p "${licensePath}"
	/usr/bin/touch "${licensePath}/licpath.lic"
	/bin/echo "SERVER ${networkServer} 000000000000" > "${licensePath}/licpath.lic"
	/bin/echo "USE_SERVER" >> "${licensePath}/licpath.lic"
	
	/Library/Application\ Support/Autodesk/AdskLicensing/Current/helper/AdskLicensingInstHelper change --pk "${productKey}" --pv "${year}.0.0.F" --lm NETWORK --ls "${networkServer}"
}

 Also, does anyone know if the Arnold renderer is bundled in Maya or Mudbox? I remember years ago that it was a stand-alone installer.

Hi!

How can I modify this script, if I have no license key and license server? I have user license only, but when I install and open Maya 2023 the icon bounces a few seconds on the tray, then disappears. How can I force/trigger the login screen of the app?

Thank you.