Silent (unattended) installation — Project Manager 4

Kstudio plugins are used by freelancers as well as in studios of different sizes – from several employees to hundreds.

Silent (unattended) installation simplifies the deployment of numerous installations into a large network: the setup runs with no dialogs, no questions and no user interaction at all.

In Project Manager 4 everything is built into the installer itself – you pass the options on the command line, and no additional helper package is required.

Project Manager 4 can be deployed across a studio without any user interaction. The setup executable accepts command-line switches directly, so you can push it with Configuration Manager (SCCM), Intune, PSADT, PsExec, PowerShell Remoting, an RMM tool, a GPO startup script or any deployment system that can run an .exe.

Requires Project Manager 4.01.93 or newer.

Quick start

Install for all 3ds Max versions found on the machine, without any window, and activate an online license key:

Project_Manager_Setup.exe /VERYSILENT /MAXVERSIONS=all /LICENSE=XXXX-XXXX-XXXX-XXXX

A more typical studio command — pick the Max versions, set the interface language, choose the AI search languages, reuse a shared model cache on a network share, and write a deployment log:

Project_Manager_Setup.exe /VERYSILENT /MAXVERSIONS=2025,2026 /LANG=en-US /SEARCHLANGS=de,multi /LICENSE=XXXX-XXXX-XXXX-XXXX /AICACHE=\\nas\deploy\pm4-models /LOG=C:\deploy\pm4.log

Deploying as SYSTEM (Configuration Manager, Intune, PSADT) or under a deployment account? Name the user the plugin is installed for — see Installing for the right user:

Project_Manager_Setup.exe /VERYSILENT /USER=DOMAIN\artist /CONFIG=\\nas\deploy\pm4.ini /LICENSE=XXXX-XXXX-XXXX-XXXX

Run the installer with /? to print the same reference to the calling console. The setup is a Windows (GUI) application, so PowerShell and cmd do not wait for it and their prompt can overwrite the help text — pipe the output to read it cleanly:

Project_Manager_Setup.exe /? | Out-Host

Command-line options

Switches follow the Inno Setup style — /KEY or /KEY=value, case-insensitive. Quote any value that contains spaces, e.g. /AICACHE="D:\My Deploy\models".

OptionMeaningDefault
/SILENTNo prompts and no questions. A small progress window stays visible while AI models download.—
/VERYSILENTNo prompts and no window at all. Implies /SILENT.—
/CONFIG=<file.ini>Read the options below from the [Setup] section of an INI file (key names without the leading slash). Command-line options override the file.—
/USER=DOMAIN\userAccount the plugin is installed for. Works without an active session — required when the installer runs as SYSTEM or when nobody is logged on. See Installing for the right user.The interactively logged-on user
/ALLOWADMINPROFILEInstall into the profile of the account the installer runs under when the target user cannot be determined, instead of failing with exit code 8.—
/MAXVERSIONS=<list>3ds Max versions to install into: 2025,2026 or all.all detected
/LANG=<culture>Plugin interface language, e.g. en-US, de-DE, ja-JP.Language of a previous installation, otherwise the Windows UI language, otherwise English
/SEARCHLANGS=<list>Languages for AI search queries: short codes such as de,fr,multi, or auto, or none.auto
/LICENSE=<key>Online license key. Offline activation keys are not supported here — see below.—
/NOAI (same as /AI=0)Do not install the AI engine and do not download any AI model.AI enabled
/AICACHE=<dir>Folder holding the AI model archives. Missing archives are downloaded into it, so the next machine reuses them.—
/DIR=<path>AI engine folder.%LOCALAPPDATA%\Kstudio\AI-Engines
/DBTYPE=mysql|sqliteDatabase the plugin connects to on its first start. See Database connection.Keep the current setting (SQLite on a new installation)
/DBHOST=<host>MySQL server. Required with /DBTYPE=mysql.—
/DBPORT=<port>MySQL port.3306
/DBUSER=<user>MySQL user. Required with /DBTYPE=mysql.—
/DBPASSWORD=<password>MySQL password. Prefer the /CONFIG file for it — see Database connection.—
/LOG=<file>Write the installation log to this file in addition to the standard log.—
/NORESTARTNever prompt to restart Windows. A pending restart is reported through exit code 3010 instead.—
/?, /HELPPrint the option list and exit.—

Unknown options are an error, not a warning. A misspelled switch or an invalid value stops the installer with exit code 1 before anything is installed — a silent installation that quietly ignored your /LICENSE would look successful, which is worse than failing.

Using a configuration file

For large rollouts it is easier to keep the settings in one INI file and pass a single switch. Use the same key names without the leading slash, in a [Setup] section; flags accept 1, true or yes.

[Setup]
VERYSILENT=1
MAXVERSIONS=2025,2026
LANG=en-US
SEARCHLANGS=de,fr,multi
AICACHE=\\nas\deploy\pm4-models
LOG=C:\deploy\pm4.log
NORESTART=1

; Optional: connect the plugin to the studio MySQL server
DBTYPE=mysql
DBHOST=db.studio.local
DBPORT=3306
DBUSER=pm_user
DBPASSWORD=XXXX
Project_Manager_Setup.exe /CONFIG=\\nas\deploy\pm4.ini /USER=DOMAIN\artist /LICENSE=XXXX-XXXX-XXXX-XXXX

Anything given on the command line wins over the file, so one shared INI plus a per-machine user and license key is usually all you need.

Installing for the right user

The plugin files are installed for all users under %ProgramData%\Autodesk\ApplicationPlugins, but the license, settings, logs and AI engine live in the profile (%LOCALAPPDATA%) of the person who runs 3ds Max. The installer needs administrator rights, so it often runs under a different account — SYSTEM in Configuration Manager or Intune, a deployment account in PsExec. The target user is determined in this order:

  1. /USER=DOMAIN\user — the account you name. Works without anybody being logged on, so this is the right choice for Configuration Manager, Intune, PSADT and overnight rollouts. The account must already have a profile on the machine (it has signed in at least once); otherwise the installer stops with exit code 8.
  2. If the installer is not elevated — the account it runs under.
  3. Otherwise — the user signed in to the machine. If nobody is signed in, or several different users are, a silent installation stops with exit code 8 instead of guessing.

/ALLOWADMINPROFILE replaces that exit code 8 with an installation into the profile of the account the installer runs under. Use it only when that account is the one who will work in 3ds Max.

Licensing

Pass a single online license key with /LICENSE. The key is applied right after the files are installed, using the same licensing library the registration dialog inside 3ds Max uses.

  • Internet access is required at activation time.
  • Offline activation keys are not supported in silent mode: they require a manual round trip with identification files through our website. Such a key is rejected with exit code 4 and a clear message in the log.
  • Installing for another account (/USER while the installer runs as SYSTEM or a deployment account): the installer cannot activate the license inside somebody else’s profile. The key is stored in that user’s %LOCALAPPDATA%\Kstudio\ProjectManager_4-pending.keys and activated automatically, silently, the first time the user starts 3ds Max — the machine needs internet access at that moment. This is the normal path for network deployment, so the installer returns exit code 0.
  • If activation fails — no network on the machine being deployed, for example — the installation itself still succeeds. The key is stored in the same ProjectManager_4-pending.keys file and applied automatically on the first 3ds Max start, as soon as the machine can reach the licensing server. The installer returns exit code 4 so your deployment report shows the machine as “installed, not yet licensed”.

Database connection

A new installation keeps its library in a local SQLite database. To connect every workstation to the studio MySQL server right away, pass the connection with /DBTYPE=mysql, /DBHOST, /DBUSER, /DBPASSWORD and, if the port is not 3306, /DBPORT.

  • The connection is applied the first time each installed 3ds Max version starts the plugin. From then on it is an ordinary setting, the same as one entered in Preferences.
  • Without /DBTYPE the current setting is kept, so an upgrade does not touch a connection the user has already configured. /DBTYPE=sqlite switches back to the local database.
  • Inconsistent options are rejected with exit code 1: /DBHOST, /DBPORT, /DBUSER or /DBPASSWORD without /DBTYPE=mysql, MySQL without a host or user, or a port outside 1–65535.

Keep the password out of the command line. A command line is visible in the process list and is recorded by deployment tools (for example Configuration Manager’s AppEnforce.log). Put DBPASSWORD into the /CONFIG file on a share only the deployment account can read. The installer never writes the password to its log.

The plugin stores the password in plain text in its settings inside the user’s profile, the same as when it is entered in Preferences. Use a dedicated MySQL account with privileges limited to the Project Manager database.

AI models and the shared cache

The AI features (visual search, classification, text search, multilingual queries) need model files. The installer downloads them automatically — you do not have to prepare anything.
On a single machine that is a one-time download; across a studio, downloading gigabytes to every workstation is not.

/AICACHE=<folder> solves this with one switch. The cache is self-filling: if an archive is missing from the folder it is downloaded as usual and kept there; if it is present, it is unpacked locally with no network traffic at all. Point every machine at the same network share, and the first one populates it for the rest. Downloads are written through a temporary .part file, so several machines can fill the same share at the same time.

Manual preparation is only a fallback — for machines with no internet access, or when you want the very first deployment to run offline too. File names in the cache are fixed and readable, so you can fill the folder by hand; see How to manually download and install AI models for the direct links:

FileContents
clip-vit-l14-full.zipVisual model — image search and AI classification
clip-vit-l14-text_encoder.zipText encoder — search by text description
opus-mt-<code>-en.zipTranslation model for one search language, e.g. opus-mt-de-en.zip
small100-330M.zipMulti-language model, used for the multi search language

If the workstations have no internet access at all, download the archives once on any machine with a connection, put them into the /AICACHE folder under exactly the names above, and the silent installation will run fully offline.

A cached archive that turns out to be truncated or corrupted is discarded and re-downloaded, so a broken share cannot silently produce broken installations.

If you do not want AI features at all, use /NOAI: nothing is downloaded and the installation takes seconds.

AI search languages

/SEARCHLANGS controls which translation models are installed, i.e. in which languages your artists can type search queries.

  • auto (default) — keep the languages already installed on that machine, otherwise follow the interface language.
  • none — install no translation model. English queries always work without one.
  • An explicit list — /SEARCHLANGS=de,fr,multi. Exactly these are installed and any other previously installed language is removed.

Use multi for languages without a dedicated model — one shared multi-language model covers them.

Supported search language codes: uk, de, es, fr, it, pl, pt, tr, zh, ja, da, ar, nl, ko, hi, sv, id, sk, cs, bg, hu, vi, th, tl, fi, ro, he, el, hr, no, multi.

Supported interface languages (/LANG): en-US, da-DK, de-DE, es-ES, fr-FR, it-IT, pl-PL, pt-BR, tr-TR, uk-UA, zh-CN, ja-JP.

Exit codes

The installer returns a meaningful exit code, so a deployment script can tell “done” from “installed but needs attention”.

CodeMeaning
0Success. Also returned when the license key was stored for the first 3ds Max start of another account (see Installing for the right user).
1Invalid arguments — nothing was installed.
2None of the requested 3ds Max versions was found on the machine.
3Installation failed.
4Installed, but the license key was not activated (no network, wrong key, or an offline-activation key).
5Installed, but one or more AI models could not be downloaded. The plugin works; the affected AI feature does not until the model is present.
6Installed, but the AI engine is not usable: it could not be placed into the user profile, or the Microsoft Visual C++ runtime 14.50 or newer could not be installed. Unlike code 5, the models themselves may be fine.
7The silent installation was interrupted before it finished — for example, somebody closed the /SILENT progress window.
8The user the plugin is installed for could not be determined — nothing was installed. Pass /USER (or /ALLOWADMINPROFILE), see Installing for the right user.
3010Installed, a Windows restart is required to finish.

If several things go wrong at once, the first problem is the one reported — a failed installation is more interesting than the license that could not be applied afterwards. The log always lists every issue.

Logging

Every silent run logs each decision it made — target user, selected Max versions, interface language, search languages, database type, model cache hits, license activation result. Two destinations:

  • Always: %LOCALAPPDATA%\Kstudio\data\logs\kstudio.log in the profile of the user the plugin is installed for
  • Additionally, with /LOG=<file>: your own file, which is convenient to collect on a share, e.g. /LOG=\\nas\deploy\logs\%COMPUTERNAME%.log

If a machine reports a non-zero exit code, that log is the first place to look. The uninstaller writes its own log — see Silent uninstallation.

Silent uninstallation

In 4.01.88 and earlier the uninstaller always shows the version selection dialog, even with /SILENT.
Every new version upgrades the existing installation in place and replaces the uninstaller, so deploy the current version over the old one first (for example as a supersedence in Configuration Manager), then uninstall silently.

The uninstaller is C:\Program Files\Kstudio\Project Manager\unins000.exe. Its command line is also registered as QuietUninstallString under HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{83ED29B6-8087-41E6-ABB3-F325A664D112}}_is1.

OptionMeaningDefault
/SILENT, /VERYSILENTNo dialogs. /VERYSILENT also hides the progress window.—
/MAXVERSIONS=<list>3ds Max versions to remove: 2025,2026 or all. The other versions stay installed and keep their entry in Programs and Features. An explicitly empty value (/MAXVERSIONS=) is an error, not “all” — an empty variable in a deployment script must never remove every version.all installed, when the option is not given
/REMOVESETTINGSAlso remove the plugin settings of the removed versions from the profile of the user the plugin was installed for.Settings are kept
/REMOVEAIAlso remove the Kstudio\AI-Engines folder with the AI engine and models.AI engine is kept
/LOG="<file>"Write the uninstall log to this file.—
/NORESTARTNever restart Windows.—

Remove everything:

"C:\Program Files\Kstudio\Project Manager\unins000.exe" /VERYSILENT /NORESTART /LOG="C:\Windows\Temp\pm4-uninstall.log"

Remove only the 3ds Max 2025 version together with its settings:

"C:\Program Files\Kstudio\Project Manager\unins000.exe" /VERYSILENT /NORESTART /MAXVERSIONS=2025 /REMOVESETTINGS /LOG="C:\Windows\Temp\pm4-uninstall.log"

  • Exit code: 0 means the uninstallation finished; any non-zero code means it did not run to completion. A silent uninstallation stops with a non-zero code and a reason in the log when 3ds Max is running, when /MAXVERSIONS is empty, or when it matches none of the installed versions.
  • Logging: the plugin’s kstudio.log is not used by the uninstaller. Pass /LOG="<file>"; an uninstallation started from Programs and Features writes a log to %TEMP% automatically.

Before you deploy

  • Close 3ds Max on the target machine. In interactive mode the installer warns you; in silent mode it does not ask, and files in use cannot be replaced. The silent uninstaller refuses to run while 3ds Max is open.
  • Administrator rights are required — the plugin is installed for all users, under %ProgramData%\Autodesk\ApplicationPlugins.
  • Deploying as SYSTEM or a deployment account — pass /USER, and make sure that user has signed in to the machine at least once.
  • Internet access is needed for license activation and for any AI model that is not already in your /AICACHE folder. With a fully populated cache and /LICENSE omitted, a silent install needs no network at all.
  • Demo assets are never installed in silent mode.
  • Test the exact command on one machine first, then roll it out.

Deployment examples

Configuration Manager / Intune — the program runs as SYSTEM, so name the user:

Install: Project_Manager_Setup.exe /VERYSILENT /NORESTART /USER=DOMAIN\artist /CONFIG=\\nas\deploy\pm4.ini /LICENSE=XXXX-XXXX-XXXX-XXXX
Uninstall: "C:\Program Files\Kstudio\Project Manager\unins000.exe" /VERYSILENT /NORESTART /LOG="C:\Windows\Temp\pm4-uninstall.log"

PSADT — Execute-Process waits for the installer and receives its exit code:

Execute-Process -Path "$dirFiles\Project_Manager_Setup.exe" `
    -Parameters "/VERYSILENT /NORESTART /USER=DOMAIN\artist /CONFIG=`"$dirFiles\pm4.ini`" /LICENSE=XXXX-XXXX-XXXX-XXXX"

PsExec — one machine, as SYSTEM, waiting for the result:

psexec \\WS-014 -s -w C:\deploy C:\deploy\Project_Manager_Setup.exe /VERYSILENT /USER=DOMAIN\artist /CONFIG=C:\deploy\pm4.ini /LICENSE=XXXX-XXXX-XXXX-XXXX

PowerShell Remoting — a list of machines and their users, collecting exit codes:

$machines = @{ 'WS-011' = 'DOMAIN\anna'; 'WS-012' = 'DOMAIN\mark'; 'WS-013' = 'DOMAIN\olga' }
foreach ($m in $machines.Keys) {
    $code = (Invoke-Command -ComputerName $m -ArgumentList $machines[$m] -ScriptBlock {
        param($user)
        $p = Start-Process 'C:\deploy\Project_Manager_Setup.exe' `
             -ArgumentList '/VERYSILENT','/CONFIG=C:\deploy\pm4.ini',"/USER=$user" `
             -Wait -PassThru
        $p.ExitCode
    })
    Write-Host "$m -> $code"
}

Exit code 0 means finished; 4 means the plugin is installed and the key will be applied on the first 3ds Max start; 8 means the user could not be determined; 3010 means the machine still needs a restart.

Related

This section applies to Project Manager 3 only. Version 4 does not use the SilentModeInstall package (AutoInstallStart.bat, AutoInstallStart.ms) and it can be removed after a version 4 deployment — see the instructions above. In version 4 the license key is passed with /LICENSE, and the database connection that KstudioInstallComplete used to write is set with the /DBTYPE options.

Using:

  1. Download and extract the archive SilentModeInstall.zip
  2. Copy the ZIP archive with the full version of the plugin into one folder with “AutoInstallStart.bat”
  3. Open “AutoInstallStart.bat” and uncomment/add a valid path to 3dsMax.exe
  4. Write activation keys to the file “Activation/ActivationKeys.txt”
  5. Run “AutoInstallStart.bat” using PsExec/PowerShell or manually on each computer

Note: Internet connection is required to use activation keys

Download example: SilentModeInstall.zip

See Also:

Leave a Reply

Your email address will not be published. Required fields are marked *


#StandWithUkraine

You were not leaving your cart just like that, right?

Enter your details below to save your shopping cart for later. And, who knows, maybe we will even send you a sweet discount code :)