Silent & unattended install
Every SphereHarness installer can be deployed with no window and no questions: msiexec /qn for the MSI, /quiet for the setup.exe. A silent install never accepts the licence agreement for you — the command line has to say ACCEPTEULA=1.
Which file to deploy
Each product comes in two forms, both on the Downloads page, both signed by PLM CAD UTILITIES AS (see Signed installers):
| Product | setup.exe | MSI |
|---|---|---|
| Autodesk Inventor | SphereHarness.Inventor.Setup.exe | CADCoPilot.Inventor.Setup.msi |
| Siemens NX | SphereHarness.NX.Setup.exe | CADCoPilot.NX.Setup.msi |
| Solid Edge | SphereHarness.SolidEdge.Setup.exe | CADCoPilot.SolidEdge.Setup.msi |
| AutoCAD | SphereHarness.AutoCAD.Setup.exe | CADCoPilot.AutoCAD.Setup.msi |
| Desktop agent (no CAD add-in) | SphereHarness.Agent.Setup.exe | CADCoPilot.Agent.Setup.msi |
- setup.exe carries the Microsoft prerequisites inside it — the .NET 8 Windows Desktop, .NET and ASP.NET Core runtimes and the WebView2 runtime — and installs the ones the PC lacks before the MSI. It works offline. Use it when the PC may not have .NET 8.
- The MSI is the same product without the prerequisites. It checks for .NET 8 and refuses, naming what to install, when a runtime is missing (see Microsoft .NET 8). Use it with deployment tools that want an MSI (Intune line-of-business app, Configuration Manager, Group Policy software installation) and push the .NET 8 runtimes as their own package first.
Every installer is per machine: run it elevated (as SYSTEM from a deployment tool, or from an administrator command prompt).
Accepting the licence agreement: ACCEPTEULA=1
An interactive install shows the licence agreement and cannot go on until you tick the box. A silent or reduced-UI install shows no such page, so it needs the acceptance on its command line:
ACCEPTEULA=1
- Without it, a silent install stops and installs nothing. The install log holds the reason: “A silent or reduced-UI installation of … needs ACCEPTEULA=1 on the command line. By setting it you accept the SphereHarness licence agreement (https://sphereharness.io/eula).” The exit code is 1603.
- It applies to every UI level that skips the licence page:
/qn,/qb,/qrand/passivefor the MSI,/quietand/passivefor setup.exe. - Setting it is accepting the agreement on behalf of the organisation that deploys it. Read it first at sphereharness.io/eula.
- Repair and uninstall do not need it. An upgrade does: it installs the newer version as a new installation, so keep
ACCEPTEULA=1in the upgrade line too. - When the licence terms change later, the desktop agent asks each person to accept the new terms; a silent install does not answer that for them.
The MSI: msiexec
Install, with a verbose log (always keep the log — it is the first thing support asks for):
msiexec /i CADCoPilot.Inventor.Setup.msi ACCEPTEULA=1 /qn /norestart /l*v C:\Logs\SphereHarness-Inventor.log
Uninstall and repair, with the MSI file or with its product code ({ProductCode}, in the uninstall entry of the registry):
msiexec /x CADCoPilot.Inventor.Setup.msi /qn /norestart /l*v C:\Logs\SphereHarness-Inventor-remove.log
msiexec /fa CADCoPilot.Inventor.Setup.msi /qn /norestart /l*v C:\Logs\SphereHarness-Inventor-repair.log
An upgrade is the newer MSI run with the same install line: it removes the older version of that product first. An older MSI never replaces a newer installed one; it stops with exit code 1638 instead.
Leaving parts out
Every CAD MSI has the same features (the agent-only MSI has all but ClientFeature). Choose them with the standard ADDLOCAL / REMOVE properties:
| Feature | What it is | Can be left out |
|---|---|---|
ClientFeature | The CAD add-in (not in the agent-only MSI) | No — it is the product |
CommonFeature | Shared configuration and the knowledge folder | No |
AgentFeature | The desktop agent — the chat every add-in opens | No |
AgentAutostartFeature | Start the agent when a person signs in to Windows | Yes |
RagFeature | The document indexing service on this PC | Yes |
The default is everything. To leave the optional parts out, name them with REMOVE — here the start-at-sign-in entry and the document index:
msiexec /i CADCoPilot.Inventor.Setup.msi ACCEPTEULA=1 REMOVE=AgentAutostartFeature,RagFeature /qn /l*v C:\Logs\sh.log
The install folder is not a choice, silently or in the wizard: everything goes to %ProgramFiles%\SphereHarness and %ProgramData%\SphereHarness, because all the installers share their common parts by path. Do not pass a folder property.
Public properties
| Property | Value | What it does |
|---|---|---|
ACCEPTEULA | 1 | Accepts the licence agreement. Required for every silent or reduced-UI install (above). |
SH_SKIP_DOTNET_CHECK | 1 | Installs even though a .NET 8 runtime is missing, for a deployment that pushes the runtimes after SphereHarness in the same run. Without the runtimes the product does not start. |
TENANT_SERVER_URL | URL | Enrols the PC with your organisation server. Writes HKLM\Software\Policies\SphereHarness\Tenant, the key a Group Policy would write. |
TENANT_SIGNIN_MODE | windows, entra or key | How the PC signs in to the organisation server. Any other word stops the install. |
TENANT_KEY_FILE | path | Key sign-in: the path of a copy of the server's key file. The key itself never goes on a command line, into the log or into the registry. |
TENANT_ID | name | The tenant's short name. |
TENANT_SYNC_INTERVAL_MIN | minutes | Overrides the administrator's sync interval on this PC. |
TENANT_ENTRA_TENANT, TENANT_ENTRA_CLIENT, TENANT_ENTRA_SCOPE | IDs | Microsoft Entra ID sign-in only. |
DOCINDEX_URL, DOCINDEX_MODE, DOCINDEX_AUTH, DOCINDEX_TENANT, DOCINDEX_ENTRA_TENANT, DOCINDEX_ENTRA_CLIENT, DOCINDEX_ENTRA_SCOPE, DOCINDEX_ALLOW_USER_OVERRIDE | see Document Index: IT Setup | Points the PC at an organisation document index. Writes HKLM\Software\Policies\SphereHarness\DocumentIndex. |
TENANT_* values are remembered: an upgrade or repair without them keeps the PC enrolled. The DOCINDEX_* values are not: pass them again on every upgrade, or set them by Group Policy instead.A PC enrolled with an organisation server at install time:
msiexec /i CADCoPilot.Inventor.Setup.msi ACCEPTEULA=1 TENANT_SERVER_URL=https://orgserver.corp.example:8644 TENANT_SIGNIN_MODE=windows /qn /l*v C:\Logs\sh.log
The setup.exe: /quiet
SphereHarness.Inventor.Setup.exe /quiet /norestart /log C:\Logs\SphereHarness-Inventor.log ACCEPTEULA=1
/quietshows nothing;/passiveshows progress only. Both needACCEPTEULA=1./log <file>writes the setup.exe's log and one log per package beside it.- These properties are passed on to the MSI:
ACCEPTEULA,SH_SKIP_DOTNET_CHECK, everyTENANT_*property, andDOCINDEX_URL,DOCINDEX_MODE,DOCINDEX_AUTH,DOCINDEX_TENANT. For the other document-index properties or to choose features (ADDLOCAL/REMOVE), deploy the MSI. - Uninstall and repair:
The uninstall entry's QuietUninstallString runs the cached copy of the setup.exe, so the original file is not needed to remove it.SphereHarness.Inventor.Setup.exe /uninstall /quiet /log C:\Logs\sh-remove.log SphereHarness.Inventor.Setup.exe /repair /quiet /log C:\Logs\sh-repair.log - The Microsoft runtimes it installs stay when SphereHarness is uninstalled: other software may use them.
Exit codes
Both forms return Windows Installer's standard codes:
| Code | Meaning | What to do |
|---|---|---|
0 | Success | — |
3010 | Success; a restart is needed to finish (usually a Microsoft runtime) | Restart when convenient. Count it as success in your deployment tool. |
1641 | Success; the installer started a restart | Only without /norestart. |
1602 | Cancelled | — |
1603 | The install stopped | Read the log: the reason is there in plain words — no ACCEPTEULA=1, a .NET 8 runtime missing, a wrong TENANT_SIGNIN_MODE, or a newer version already installed. |
1618 | Another installation is running | Retry later; most deployment tools retry 1618 by themselves. |
1605 | Uninstall of a product that is not installed | Nothing to do. |
1638 | Another version of this product is installed — this one is older | Deploy the current version instead. |
1619 | The package could not be opened | Check the path and that the file was copied completely (compare its SHA-256 with the Downloads page). |
Deployment tools
- Microsoft Intune: add the MSI as a line-of-business app with the command-line arguments
ACCEPTEULA=1, or wrap the setup.exe as a Win32 app with the install commandSphereHarness.Inventor.Setup.exe /quiet /norestart ACCEPTEULA=1and the uninstall commandSphereHarness.Inventor.Setup.exe /uninstall /quiet. - Configuration Manager: the MSI line above as the installation program; return code 3010 as soft reboot.
- Group Policy software installation cannot pass properties on its own: build a transform (
.mst) that setsACCEPTEULA=1, or deploy with a startup script instead. - Close the CAD applications first, or install at start-up: an add-in registers while the CAD system starts, and files in use force a restart.
Tenant administrators: the organisation server, unattended
The organisation server is installed by install-organisation-server.ps1, elevated, on the server. Every step runs without a prompt when nothing has to be typed:
powershell -ExecutionPolicy Bypass -File .\install-organisation-server.ps1 -SourceDir .\pub -TenantId acme -Port 8644 -GenerateAdminPassword
-DryRunprints every step and changes nothing — run it first.-GenerateAdminPasswordmakes the tenant administrator password for you and nothing is typed; it is saved toorganisation-server-admin-password.txtin the data folder, readable by Administrators only, and never printed.-SetAdminPasswordwith the password on redirected standard input also runs unattended; the password is never a parameter.- Channel tokens (
-TwilioAuthToken,-TelegramBotToken,-SphereHarnessRelayToken) are read from redirected standard input when there is no console;-CertificatePasswordtakes a SecureString. - Over remote PowerShell (
Invoke-Command) there is no console to prompt on: use-GenerateAdminPassword. - Exit code
0is success; any failure prints the reason and exits1.
Remove the server silently:
powershell -ExecutionPolicy Bypass -File .\install-organisation-server.ps1 -Uninstall
That stops and deletes the service, removes its firewall rules and the program folder. The data folder (%ProgramData%\SphereHarness\OrganisationServer: the tenant database, the key, passwords and channel secrets) is kept unless you add -RemoveData, which cannot be undone. The server's configuration (sign-in mode, tenant and the key the PCs use) is kept beside it, and the next install restores it, so an uninstall followed by a reinstall does not re-key the enrolled PCs. If you installed with a non-default -InstallDir or -DataDir, pass the same ones to -Uninstall. Running -Uninstall where nothing is installed is not an error.
Team Import
sphereharness-team-import.exe loads a library pack into the organisation server. It is copied, not installed (delete the folder to remove it), and runs without a prompt with --yes:
sphereharness-team-import --pack C:\Packs\frame-tools.sphereharness-pack --server https://orgserver.corp.example:8644 --token <token> --yes
Exit code 0: everything imported; 1: some items failed; 2: nothing imported. --help prints the options.
Then point the PCs at the server with the TENANT_* properties above or by Group Policy — see Tenant Mode.
See also
- Installing SphereHarness — what each installer adds, shared parts, where files land.
- Downloads — the files and their SHA-256 checksums.
- Tenant Mode: Organisation Server and Document Index: IT Setup.
- Organization Admin Guide — seats and users once the software is on the PCs.