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.
| # | Step | Detail |
|---|---|---|
| 1 | Confirm the workstations run Plant 3D 2026.2 or newer and Windows 10 1809+ / 11 x64 | ยง1 |
| 2 | Verify the package signature โ Status: Valid, CN="NUTECHNA, INC." | ยง2 |
| 3 | Open outbound HTTPS to api.nutechna.com. Do this before the pilot โ without it the software cannot be licensed | ยง6 |
| 4 | Install on one pilot machine with verbose logging; confirm connectivity from that machine | ยง3, ยง6.5 |
| 5 | Choose the update policy for the fleet โ UPDATEMODE, set at install time | ยง3, ยง4 |
| 6 | Add the detection rule and publish to the fleet | ยง8 |
1. Requirements
| OS | Windows 10 1809+ / Windows 11, x64 |
|---|---|
| Privileges | Local administrator for the install. No administrator rights are needed to run the app. |
| .NET runtime | None. 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 application | Autodesk AutoCAD Plant 3D 2026.2 or newer, customer-supplied license, not installed by this package. See the note below. |
| Network | Outbound HTTPS to api.nutechna.com. Mandatory โ see ยง6. |
2. Verify the package before you deploy it
Get-AuthenticodeSignature .\NuTechnaCompanion-v<version>.msi | Format-List Status, SignerCertificate
Two things must be true:
Status: Valid, and- the subject carries
CN="NUTECHNA, INC.", O="NUTECHNA, INC."โ that is the identity Microsoft validated, and it is what SmartScreen and UAC read.
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.
| Property | Values | Default | Effect |
|---|---|---|---|
INSTALLFOLDER | any path | %ProgramFiles%\NuTechna\Companion | install location |
UPDATEMODE | SoftwareCenter | ContactIT | Direct | Direct | what the app tells users to do when a new version exists โ see ยง4 |
UPDATECONTACT | free 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.
UPDATEMODE | What 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." |
UPDATEMODE=SoftwareCenter. Users
self-service the update, the install runs as SYSTEM through your management client, and no user
needs local administrator rights.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.
| Destination | Port | Protocol | Purpose | Required |
|---|---|---|---|---|
api.nutechna.com | 443 | HTTPS | 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.
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:
- drawing files, 3D models, and project files;
- the contents of the DSP database;
- file paths, user documents, or anything scanned from the workstation.
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 sees | Cause | Who fixes it |
|---|---|---|
| "cannot look up api.nutechna.com" | DNS filtering / split-horizon DNS | your DNS or network team |
| "could not connect โฆ on port 443" | firewall rule or silent drop | your firewall team |
| "a secure connection could not be established" | TLS inspection not trusted by this machine | your endpoint team (trust the proxy root, or bypass this host) |
| "reachable but reporting an error" | a fault on NuTechna's side | contact 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'
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.
{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)
| Method | Rule |
|---|---|
| File | %ProgramFiles%\NuTechna\Companion\CompanionApp.exe version โฅ target |
| Registry | HKLM\SOFTWARE\NuTechna\Companion โ Version equals target |
| MSI | Enumerate by the UpgradeCode above |
9. Troubleshooting
| Symptom | Cause / action |
|---|---|
| Install fails, exit 1603 | Generic failure โ re-run with /l*v and send us the log. |
| Install fails, exit 1618 | Another install is in progress; retry. |
| Exit 1638 | A version is already installed; a major upgrade should handle it โ send the log. |
| Uninstall fails, exit 1605 | That 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 1619 | What 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 button | Expected under a per-machine install. See ยง4. |
| The plugin does not appear in Plant 3D | Check the Plant 3D release โ 2026.2 or newer is required (ยง1). Earlier releases skip the plugin without an error. |
| AutoCAD prompts about an unverified publisher | Should not occur โ all modules are signed. Report it. |
| SmartScreen on download | The package is signed; SmartScreen reputation also builds with download volume. Verify the signature per ยง2 and proceed. |