Help ยท Deployment

Deploying NuTechna Companion with Group Policy, SCCM or Intune

For system administrators deploying to managed workstations. It states what the installer does, everything it writes, and every option it accepts. If the package does something not documented here, that is a defect โ€” please report it.

Product: NuTechna Companion  ยท  Publisher: NUTECHNA, INC. (all binaries Authenticode-signed)  ยท  Package: NuTechnaCompanion-v<version>.msi, Windows Installer, per-machine, x64  ยท  Support: support@nutechna.com

Sign in to the customer portal and use Windows Installer package (.msi) to download the current release. Download for Windows beside it is the single-machine installer and is not intended for fleet deployment.

Deployment checklist

The short version. Each step links to the detail below.

#StepDetail
1Confirm the workstations run Plant 3D 2026.2 or newer and Windows 10 1809+ / 11 x64ยง1
2Verify the package signature โ€” Status: Valid, CN="NUTECHNA, INC."ยง2
3Open outbound HTTPS to api.nutechna.com. Do this before the pilot โ€” without it the software cannot be licensedยง6
4Install on one pilot machine with verbose logging; confirm connectivity from that machineยง3, ยง6.5
5Choose the update policy for the fleet โ€” UPDATEMODE, set at install timeยง3, ยง4
6Add the detection rule and publish to the fleetยง8

1. Requirements

OSWindows 10 1809+ / Windows 11, x64
PrivilegesLocal administrator for the install. No administrator rights are needed to run the app.
.NET runtimeNone. The application is self-contained.
Disk~47 MB in the install folder, plus up to ~18 MB per version in %TEMP% until swept. ยง5 lists everything that lands on a machine.
Host applicationAutodesk AutoCAD Plant 3D 2026.2 or newer, customer-supplied license, not installed by this package. See the note below.
NetworkOutbound HTTPS to api.nutechna.com. Mandatory โ€” see ยง6.
The Plant 3D requirement is a point release, not a year. Plant 3D 2026.0 and 2026.1 host .NET 8; 2026.2 moved the host to .NET 10, and the DSP plugin is a .NET 10 assembly. On an earlier release AutoCAD raises no error โ€” it loads nothing and reports nothing. The Companion checks the host runtime before offering the plugin and names the release required, so a workstation that is behind is identified rather than left in that state. Plant 3D 2024 and 2025 are not supported targets.

2. Verify the package before you deploy it

Get-AuthenticodeSignature .\NuTechnaCompanion-v<version>.msi | Format-List Status, SignerCertificate

Two things must be true:

Verify on CN and O, not on the full subject string. The locality and state fields carry our registered business address as of the date the certificate was issued, so they may differ between releases. Every certificate is issued against the same Microsoft-validated identity, NUTECHNA, INC., and signatures are RFC-3161 timestamped โ€” an older package continues to verify after a certificate is renewed.

The executable inside the package is signed independently โ€” signing only the container would say nothing about the binary that ends up on disk.

3. Installing

Interactive

Double-click the MSI. Wizard: Welcome โ†’ install location โ†’ Ready โ†’ Install. One UAC elevation, naming NUTECHNA, INC. as verified publisher.

Silent

msiexec /i NuTechnaCompanion-v<version>.msi /qn /norestart

Silent with logging โ€” use this on the first pilot machine

msiexec /i NuTechnaCompanion-v<version>.msi /qn /norestart /l*v C:\Temp\nutechna-install.log

Custom install location

msiexec /i NuTechnaCompanion-v<version>.msi /qn INSTALLFOLDER="D:\Apps\NuTechna\Companion"

No reboot is required. The package requests none.

Configuration properties

Set at install time; all optional.

PropertyValuesDefaultEffect
INSTALLFOLDERany path%ProgramFiles%\NuTechna\Companioninstall location
UPDATEMODESoftwareCenter | ContactIT | DirectDirectwhat the app tells users to do when a new version exists โ€” see ยง4
UPDATECONTACTfree text(empty)appended to that message, e.g. a helpdesk address
msiexec /i NuTechnaCompanion-v<version>.msi /qn ^
        UPDATEMODE=SoftwareCenter ^
        UPDATECONTACT="helpdesk@example.com"

These land in HKLM (ยง5) and can be changed later by Group Policy without reinstalling.

4. How updates work under a managed install

The application does not update itself when it is installed per-machine. It detects that it cannot write its own install directory โ€” by attempting the write, not by guessing from the path โ€” and will not offer an update button that could not succeed. Instead it shows the version that is available and the instruction you configured.

UPDATEMODEWhat the user is told
SoftwareCenter"Open Software Center to install it โ€” no administrator rights are needed."
ContactIT"This installation is managed by your IT department; contact them."
Direct"This copy is installed for all users, so it must be updated by someone with administrator rights."
Recommended for managed fleets: publish each new MSI as Available in SCCM Software Center or Intune Company Portal and set UPDATEMODE=SoftwareCenter. Users self-service the update, the install runs as SYSTEM through your management client, and no user needs local administrator rights.
We do not ask you to enable AlwaysInstallElevated. It is a documented privilege-escalation weakness and no NuTechna deployment requires it.

Confirming what a workstation actually got

After a rollout, ask a machine what it believes about itself rather than walking to it and opening the application:

$p = Start-Process -FilePath "$env:ProgramFiles\NuTechna\Companion\CompanionApp.exe" `
                   -ArgumentList '--install-report' -NoNewWindow -Wait -PassThru

It prints one key=value per line and exits 0:

installDirectory=C:\Program Files\NuTechna\Companion
canSelfUpdate=false
canWriteProgramFiles=false
updateMode=SoftwareCenter
updateContact=helpdesk@example.com
version=0.1.83
managedNotice=Version 0.1.83 is available. Open Software Center to install it - no administrator rights are needed (helpdesk@example.com).

updateMode and updateContact are the values that reached HKLM, so this confirms your UPDATEMODE actually applied. managedNotice is the exact sentence your engineers will be shown โ€” not a description of it โ€” so you can review the wording your helpdesk address appears in before anyone sees it.

Run it as an ordinary user, not as an administrator. canSelfUpdate is measured by attempting a write in the install folder as whoever ran the command, and an administrator genuinely can write %ProgramFiles% โ€” so an elevated prompt correctly reports canSelfUpdate=true and tells you nothing about what your engineers experience. canWriteProgramFiles is printed beside it so you can tell which of the two you are looking at.

Upgrading

Install the newer MSI over the old one โ€” a major upgrade is configured, so the previous version is removed automatically. Do not uninstall first.

msiexec /i NuTechnaCompanion-v<newer version>.msi /qn /norestart

5. Exactly what the installer writes

Files

%ProgramFiles%\NuTechna\Companion\CompanionApp.exe      the application (signed) โ€” 46.6 MB
%ProgramFiles%\NuTechna\Companion\.nutechna-install     install marker โ€” 28 bytes

Two files โ€” that is the entire install folder. To confirm before deploying, extract the package without installing it: msiexec /a NuTechnaCompanion-v<version>.msi /qb TARGETDIR=C:\Temp\nutechna.

Start Menu

%ProgramData%\Microsoft\Windows\Start Menu\Programs\NuTechna\NuTechna Companion.lnk

Registry โ€” HKLM, written by the installer

HKLM\SOFTWARE\NuTechna\Companion
    UpdateMode      REG_SZ    the UPDATEMODE property
    UpdateContact   REG_SZ    the UPDATECONTACT property
    InstallMode     REG_SZ    "msi"
    Version         REG_SZ    product version
    InstallPath     REG_SZ    resolved install folder

Registry โ€” HKCU, written per user at first run

HKCU\SOFTWARE\NuTechna\Companion    shortcut keypath

Per-user application data โ€” created by the app, not the installer

%LOCALAPPDATA%\NuTechna\companion_settings.json   settings
%LOCALAPPDATA%\NuTechna\                          license state, staged downloads, log files

Temporary files

Listed because a complete answer is the point of this section, and because an inventory sweep will find them.

%TEMP%\.net\CompanionApp\<hash>\    ~18 MB per version ever run. The application ships as a single
                                    file, so the .NET runtime extracts its native libraries here on
                                    the first launch of each version. This is .NET's own behavior and
                                    .NET never removes them.
%TEMP%\NuTechna_Companion_*.log     installer logs. The two most recent are kept for support.

Neither is needed after the run that created it. The application sweeps its own classes at startup, and an administrator can force the sweep without launching the UI:

$p = Start-Process -FilePath "$env:ProgramFiles\NuTechna\Companion\CompanionApp.exe" `
                   -ArgumentList '--housekeeping' -NoNewWindow -Wait -PassThru
$p.ExitCode

It removes only paths matching one of its named classes, prints every path it removed with the reason, and exits non-zero if a removal failed. It never removes the extraction folder the running process is using, and never a file it does not recognize.

Use Start-Process -Wait, not the bare path. The Companion is a graphical application, and Windows does not make a shell wait for one โ€” typing the executable's path directly at a prompt returns in a few milliseconds, before the work is finished, and leaves $LASTEXITCODE unset. That is a property of every windows-subsystem program, not of this one. -Wait blocks until it exits and -PassThru gives you the exit code; -NoNewWindow keeps its output in the console you ran it from. The same applies to the report command below, and to a scripted call from SCCM or a scheduled task.

No services. No scheduled tasks. No drivers. No shell extensions. No startup entries created by the installer.

6. Network requirements โ€” read this before deploying behind a restrictive policy

If outbound access to api.nutechna.com is blocked, the software will not function at all. This is not a degraded mode. License activation, the license heartbeat, license-agreement acceptance and updates all cross this boundary, so a blocked environment produces a product nobody can use. Please confirm the rule below is in place before rolling out.

โš  A firewall exception is required. The text below is written to be pasted directly into a change or exception request.

Application: NuTechna Companion (NUTECHNA, INC.) โ€” engineering drafting automation for AutoCAD Plant 3D.
Request: Allow outbound HTTPS (TCP 443) from workstations running the software to api.nutechna.com.
Justification: Required for software license activation and periodic license validation. Without this the application cannot start or be licensed.
Direction: Outbound only. No inbound rules required. The application does not listen on any port.
Data crossing the boundary: license identifier, machine fingerprint, software version, and the license-agreement version accepted. No drawing files, models, project files or database contents are transmitted.
This is the only exception required. The software contacts no other host.

If your policy requires an allowlist by IP rather than hostname, contact NuTechna support โ€” the service is hosted on Microsoft Azure and addresses can change, so a hostname rule is strongly preferred.

6.1 Required outbound access

One destination. That is the whole list.

DestinationPortProtocolPurposeRequired
api.nutechna.com443HTTPS license activation and heartbeat, license-agreement acceptance, update manifest, artifact download, and โ€” if your license includes them โ€” AI features YES โ€” mandatory

No inbound rules are required. No non-standard ports are used. The software does not listen on any port and does not accept incoming connections.

AI features do not add a destination. Where a license includes them, they are served through api.nutechna.com โ€” the same endpoint above. Workstations do not connect to any AI provider. NuTechna holds the provider credentials server-side; a workstation never holds one and never requires an egress rule for one.

6.2 What is NOT sent โ€” for your security review

Deployment is on-premises: the DSP database runs on a server you operate, and it holds the drawing and project records the software produces. The following never leave your network:

What does cross the boundary is limited to: a license identifier and machine fingerprint for activation and heartbeat; the version of the license agreement a user accepted, with a timestamp; version numbers for update checks; and โ€” only if your license includes AI features โ€” data derived from drawings, sent to api.nutechna.com for processing. Drawing files themselves are never uploaded, and nothing goes from a workstation to a third party.

6.3 TLS inspection

An inspecting proxy that re-signs TLS is supported, provided the workstation trusts your proxy's root certificate โ€” normally true on a managed machine. The software's integrity checks do not depend on the transport: downloaded artifacts are verified against our own signing key over the file contents, so inspection does not break them.

If a workstation does not trust the inspection certificate, the software reports that specifically rather than failing generically โ€” see ยง6.5.

6.4 Proxies

The software uses the Windows system proxy configuration. If your proxy requires authentication, ensure the workstation's system proxy settings supply it; there is no separate proxy configuration inside the application.

6.5 Verifying connectivity before you deploy

Run this on one pilot workstation, as the user who will run the software:

Test-NetConnection api.nutechna.com -Port 443
Invoke-WebRequest https://api.nutechna.com/ -UseBasicParsing | Select-Object StatusCode

TcpTestSucceeded : True and StatusCode : 200 mean the required rule is in place.

The Companion also diagnoses this itself and separates the causes, because they belong to different teams:

What the user seesCauseWho fixes it
"cannot look up api.nutechna.com"DNS filtering / split-horizon DNSyour DNS or network team
"could not connect โ€ฆ on port 443"firewall rule or silent dropyour firewall team
"a secure connection could not be established"TLS inspection not trusted by this machineyour endpoint team (trust the proxy root, or bypass this host)
"reachable but reporting an error"a fault on NuTechna's sidecontact NuTechna support

If a user reports being unable to accept the license agreement, check this table first โ€” a blocked network presents that way, and it is a network condition rather than a software fault.

7. Uninstall

Interactive: Add/Remove Programs โ†’ "NuTechna Companion", publisher NUTECHNA, INC.

Scripted. msiexec /x needs the ProductCode, and the ProductCode changes with every version โ€” so there is no single literal we could print here that would be correct on your machines. Resolve it first, then pass it:

$app = @(
  'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',
  'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall'
) | Where-Object { Test-Path $_ } |
    ForEach-Object { Get-ChildItem $_ | ForEach-Object { Get-ItemProperty $_.PSPath } } |
    Where-Object { $_.DisplayName -like 'NuTechna Companion*' -and
                   $_.PSChildName -match '^\{[0-9A-Fa-f-]{36}\}$' }

$app.PSChildName                                  # the ProductCode currently installed
Start-Process msiexec -Wait -ArgumentList '/x', $app.PSChildName, '/qn', '/norestart'
The GUID test in that filter is required, not decorative. A workstation may also carry the single-machine one-click install, which registers under the same display name but is not a Windows Installer product โ€” its Add/Remove key is a plain name rather than a ProductCode. Without the GUID test the filter can return that entry, and msiexec /x answers 1619 ("this installation package could not be opened") because it was handed something that is not a product code. Only a Windows Installer product has a GUID key, so the test selects the MSI unambiguously. The one-click install, if present, is removed from Add/Remove Programs in the normal way.

From SCCM / Intune: use the uninstall command your management tool recorded at deployment, or detect by the UpgradeCode below โ€” that is what it is for.

Uninstall removes the install folder, the Start Menu shortcut, the HKLM key and the ARP entry. Per-user settings and license state under %LOCALAPPDATA%\NuTechna are intentionally left so a reinstall does not lose a user's configuration. Delete that folder to remove all traces; ยง5 lists everything, including the temporary files a sweep can reclaim.

UpgradeCode is permanent and is the identity to detect on: {89C9332D-CC20-4B85-9251-DE772CB30D8E}
It is the same value in every release we have shipped and in every release we ever will. The ProductCode is not โ€” do not build a detection rule on one.

8. Detection rules (SCCM / Intune)

MethodRule
File%ProgramFiles%\NuTechna\Companion\CompanionApp.exe version โ‰ฅ target
RegistryHKLM\SOFTWARE\NuTechna\Companion โ†’ Version equals target
MSIEnumerate by the UpgradeCode above

9. Troubleshooting

SymptomCause / action
Install fails, exit 1603Generic failure โ€” re-run with /l*v and send us the log.
Install fails, exit 1618Another install is in progress; retry.
Exit 1638A version is already installed; a major upgrade should handle it โ€” send the log.
Uninstall fails, exit 1605That ProductCode is not installed. Resolve the installed one with the snippet in ยง7 rather than reusing a code from an older release.
Uninstall fails, exit 1619What was passed to msiexec /x is not a ProductCode. Almost always the ยง7 filter matched the single-machine one-click install, whose Add/Remove key is a name rather than a GUID โ€” keep the GUID test in the filter.
App shows "managed installation" and no update buttonExpected under a per-machine install. See ยง4.
The plugin does not appear in Plant 3DCheck the Plant 3D release โ€” 2026.2 or newer is required (ยง1). Earlier releases skip the plugin without an error.
AutoCAD prompts about an unverified publisherShould not occur โ€” all modules are signed. Report it.
SmartScreen on downloadThe package is signed; SmartScreen reputation also builds with download volume. Verify the signature per ยง2 and proceed.