Last updated on May 2, 2026.
The Silent Installer Guide explains how to deploy current Archigrafix NSIS installers in an enterprise environment using silent mode, elevated execution, and the correct licensing workflow for each deployment case.
Use this guide when your IT team, BIM manager, or deployment administrator needs one repeatable installation method for trials, floating licenses, customer-key deployments, desktop serial deployments, and freeware products.
Important: Silent mode hides the installer UI, but it does not bypass Windows User Account Control. Deployments still need to run in an elevated context.
Getting started
Archigrafix installers use the NSIS installer framework. The standard switch for silent installation is /S. Licensed products can also receive a serial-like value through /SERIAL=<value>.
Before a paid product installs its files, the installer validates the request against the Archigrafix authorization service. If the validation is successful, the installer continues. If the validation fails, the installer stops before the product is installed.
Requirements
- Run the deployment in an elevated context such as an elevated shell, Intune system context, SCCM or MECM, an RMM tool, or another deployment system with local administrator rights.
- Close Revit before running the installer.
- Make sure the target machine has internet access during installation so the authorization step can complete for paid products.
- Know which license model the target machine should use before deployment starts.
- Capture exit codes in your deployment wrapper so failed pilot installs are easy to diagnose.
Common switches
Silent switch
Use the NSIS silent switch to hide the installer interface.
/S
Serial switch
Use the serial argument when the deployment requires a customer key or a desktop-locked serial number.
/SERIAL=<value>
The value passed to /SERIAL= depends on the license model:
- Desktop license: pass the desktop-locked serial number.
- Floating license with customer key: pass the customer key.
- Floating license by public IP: normally omit
/SERIAL=. - Trial: normally omit
/SERIAL=. - Freeware: no serial is needed.
Elevation and UAC
Silent installation hides the installer UI, but it does not skip elevation. If the installer is launched from a non-elevated process, Windows can still show a UAC prompt or the deployment may fail depending on the tool that launched it.
Recommended elevated execution contexts include:
- Elevated PowerShell or Command Prompt
- Microsoft Intune system or administrator context
- SCCM or MECM application deployment
- RMM tooling that runs under system or local administrator rights
- Group Policy startup scripts and equivalent deployment contexts
Deployment modes
Trial installation
Trial deployment is intended for a machine that is still eligible for a trial entitlement for that product. Do not pass a serial unless you are intentionally switching to another license model.
Start-Process -FilePath "C:\Deploy\Topography_install_latest.exe" -ArgumentList "/S" -Wait -PassThru
- The installer checks trial eligibility with the authorization service.
- If the machine is trial-eligible, the install continues.
- If the trial has expired or the machine is not eligible, the install aborts.
Floating license by main authorized public IP
Use this mode when the target machine installs from a network whose public outbound IP is already authorized for the customer account.
Start-Process -FilePath "C:\Deploy\XDoor_install_latest.exe" -ArgumentList "/S" -Wait -PassThru
- No serial is normally passed.
- The authorization service identifies the customer from the public IP.
- The install continues only if the IP is attached to a valid floating entitlement for that product.
Floating license by secondary authorized public IP
Use this mode when the customer has more than one office or internet egress point and those additional public IPs are configured as aliases on the customer account.
Start-Process -FilePath "C:\Deploy\Reports_install_latest.exe" -ArgumentList "/S" -Wait -PassThru
- No serial is normally passed.
- The install succeeds only if the outbound public IP is mapped to the same customer account and the product is entitled.
- If one office succeeds and another fails, confirm the office public IP and alias configuration first.
Floating license by customer key
Use this mode when the deployment must work outside the customer’s authorized public IP range and the customer account has a customer key configured.
Start-Process -FilePath "C:\Deploy\CopyElements_install_latest.exe" -ArgumentList "/S /SERIAL=CUSTOMER-KEY-VALUE" -Wait -PassThru
- The value passed through
/SERIAL=is interpreted as a customer key. - The install succeeds only if the key maps to a customer account with a valid floating entitlement for the product.
- Treat customer keys as sensitive deployment material.
Desktop-locked license by serial number
Use this mode when the machine should activate against an individual desktop entitlement instead of a floating customer pool.
Start-Process -FilePath "C:\Deploy\iSync_install_latest.exe" -ArgumentList "/S /SERIAL=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" -Wait -PassThru
- The value passed through
/SERIAL=is treated as the desktop-locked serial number. - If the validation succeeds, the installer continues and stores the serial in the installing user’s profile registry branch for that product.
- The installing user context matters when a paid product reads or writes user-scoped license values.
Important for Intune, SCCM, GPO, and RMM: Many enterprise deployment systems install software as Local System. If a product writes license data to the current user registry hive, the license may be written for the deployment account rather than the Revit user. For enterprise deployment, prefer floating-by-IP or customer-key licensing, or use a documented per-user activation step.
Freeware installation
Hardware Benchmark is the confirmed freeware exception in the current inspected installer set. It does not need a serial or install-stage license validation, but it still requires administrator elevation.
Start-Process -FilePath "C:\Deploy\Hardware_Benchmark_install_latest.exe" -ArgumentList "/S" -Wait -PassThru
Paid-product silent validation
For paid products, the silent installer path follows the same general contract:
- Detect silent mode.
- Parse
/SERIAL=<value>if it is present. - If no serial was passed, attempt to use a previously stored license value from the current user’s registry profile.
- Call the authorization service during installation.
- Default to invalid if the response is missing or cannot be confirmed.
- Continue only when the response marks the license as valid.
This means silent mode is not a licensing bypass. It only suppresses the installer interface.
The current paid-product deployment pattern is confirmed for iSync, Graphic Studio, Reports, xDoor, Docuflow, Wall List, Database Editor, Topography, 3D Importer, Sosi Regulering, Link IFC, and Copy Elements.
Command examples
Desktop serial example
$installer = "C:\Deploy\XDoor_install_latest.exe"
$serial = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
$process = Start-Process -FilePath $installer -ArgumentList "/S /SERIAL=$serial" -Wait -PassThru
$process.ExitCode
Floating by public IP example
$installer = "C:\Deploy\Reports_install_latest.exe"
$process = Start-Process -FilePath $installer -ArgumentList "/S" -Wait -PassThru
$process.ExitCode
Floating by customer key example
$installer = "C:\Deploy\CopyElements_install_latest.exe"
$customerKey = "CUSTOMER-KEY-VALUE"
$process = Start-Process -FilePath $installer -ArgumentList "/S /SERIAL=$customerKey" -Wait -PassThru
$process.ExitCode
Multiple paid products with one serial or customer key
$serialOrCustomerKey = "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
$installers = @(
"C:\Deploy\iSync_install_latest.exe",
"C:\Deploy\Graphic_Studio_install_latest.exe",
"C:\Deploy\XDoor_install_latest.exe",
"C:\Deploy\CopyElements_install_latest.exe"
)
foreach ($installer in $installers) {
$process = Start-Process -FilePath $installer -ArgumentList "/S /SERIAL=$serialOrCustomerKey" -Wait -PassThru
Write-Host "$installer exited with $($process.ExitCode)"
}
Windows 10/11 enterprise deployment examples
Use these recipes when deploying to managed Windows 10/11 workstations at scale. They assume elevated execution, Revit closed, and outbound access to https://auth.archigrafix.com over port 443 during installation.
Intune / Microsoft Endpoint Manager
For cloud-managed Windows environments, package Archi installers as Win32 apps. This is the most practical option when the installer and helper files need wrapping into one deployment unit.
# install.ps1
$Installer = Join-Path $PSScriptRoot "XDoor_install_latest.exe"
$Args = "/S /SERIAL=CUSTOMER-KEY-VALUE"
$revit = Get-Process Revit -ErrorAction SilentlyContinue
if ($revit) {
Write-Output "Revit is running. Please close Revit before installation."
exit 1618
}
$process = Start-Process -FilePath $Installer -ArgumentList $Args -Wait -PassThru
exit $process.ExitCode
| Intune setting | Recommendation |
|---|---|
| App type | Win32 app |
| Install behavior | System, unless desktop-serial or HKCU behavior requires a user-context step |
| Install command | powershell.exe -ExecutionPolicy Bypass -File install.ps1 |
| Detection rule | File exists or version check under C:\Program Files (x86)\Archigrafix\<Product> |
| Requirements | Windows 10/11, 64-bit PowerShell |
| Restart behavior | No specific action, unless the installer requires it |
| Logging | Capture a PowerShell transcript or redirect stdout and stderr |
For desktop-locked licenses, avoid deploying the serial only in system context unless the product supports machine-wide activation. If the license is written to HKCU, add a per-user activation step, use a user-context deployment, or prefer customer-key or floating licensing for enterprise rollouts.
Configuration Manager / SCCM / MECM
For traditional enterprise application deployment, use the application model with a script installer deployment type and explicit detection.
XDoor_install_latest.exe /S /SERIAL=CUSTOMER-KEY-VALUE
$path = "C:\Program Files (x86)\Archigrafix\XDoor"
if (Test-Path $path) { exit 0 } else { exit 1 }
| SCCM field | Suggested value |
|---|---|
| Deployment type | Script Installer |
| Installation behavior | Install for system |
| Logon requirement | Whether or not a user is logged on |
| Program visibility | Hidden |
| Detection | Product folder, DLL, add-in manifest, or registry marker |
| User experience | Prevent installation while Revit is running, if possible |
Application Groups are useful when several Archi products should be deployed together in one controlled rollout.
Active Directory / Group Policy
For traditional domain environments, use startup scripts or a scheduled task preference rather than MSI-based Group Policy Software Installation. These installers are NSIS executables, so script-based delivery is more practical.
$Installer = "\\domain.local\dfs\software\archigrafix\XDoor\XDoor_install_latest.exe"
$LogDir = "C:\ProgramData\Archigrafix\DeploymentLogs"
$Log = Join-Path $LogDir "XDoor-install.log"
New-Item -ItemType Directory -Path $LogDir -Force | Out-Null
if (Test-Path "C:\Program Files (x86)\Archigrafix\xDoor") {
"Already installed: $(Get-Date)" | Out-File $Log -Append
exit 0
}
if (Get-Process Revit -ErrorAction SilentlyContinue) {
"Revit is running, aborting: $(Get-Date)" | Out-File $Log -Append
exit 1618
}
$process = Start-Process -FilePath $Installer -ArgumentList "/S /SERIAL=CUSTOMER-KEY-VALUE" -Wait -PassThru
"Exit code: $($process.ExitCode) at $(Get-Date)" | Out-File $Log -Append
exit $process.ExitCode
OU targeting, security filtering, DFS or SMB deployment shares, and item-level targeting all work well when the deployment should follow office, department, or Revit-install state.
RMM deployment pattern
For MSPs and centrally managed fleets, upload the installer locally, run it as Local System or administrator, capture the exit code, and write a deployment marker after success.
$Installer = "C:\Windows\Temp\XDoor_install_latest.exe"
$Args = "/S /SERIAL=CUSTOMER-KEY-VALUE"
$process = Start-Process $Installer -ArgumentList $Args -Wait -PassThru
if ($process.ExitCode -eq 0) {
New-Item -ItemType Directory -Path "C:\ProgramData\Archigrafix" -Force | Out-Null
Set-Content "C:\ProgramData\Archigrafix\XDoor.deployed" (Get-Date)
}
exit $process.ExitCode
Deployment decision matrix
| Environment | Recommended method | Best license mode |
|---|---|---|
| Cloud-managed Windows 10/11 | Intune Win32 app | Customer key or floating by IP |
| Traditional AD domain | GPO startup script or scheduled task | Floating by IP or customer key |
| Large enterprise | SCCM or MECM | Customer key or floating by IP |
| MSP-managed customer | RMM script | Customer key |
| One-off workstation | Elevated PowerShell | Desktop serial or trial |
| Multi-office firm | Intune, SCCM, or RMM | Customer key or secondary public IP aliases |
Detection and verification examples
| Check | Example |
|---|---|
| Product folder exists | C:\Program Files (x86)\Archigrafix\<Product> |
| Revit add-in manifest exists | Revit 2027+: C:\Program Files\Autodesk\Revit\Addins\<Version>\*.addinOlder Revit: %AppData%\Autodesk\Revit\Addins\<Version>\*.addin |
| Product DLL exists | C:\Program Files (x86)\Archigrafix\<Product>\*.dll |
| Exit code is success | 0 |
| Revit ribbon appears | Open Revit and confirm the Archigrafix ribbon is available |
| Floating checkout works | Launch the tool from the target office or VPN path |
$ProductPath = "C:\Program Files (x86)\Archigrafix\XDoor"
$ManifestRoots = @(
"C:\Program Files\Autodesk\Revit\Addins",
(Join-Path $env:APPDATA "Autodesk\Revit\Addins")
)
if (Test-Path $ProductPath) {
$addin = foreach ($root in $ManifestRoots) {
if (Test-Path $root) {
Get-ChildItem $root -Recurse -Filter "*.addin" -ErrorAction SilentlyContinue |
Where-Object { $_.FullName -match "XDoor|Archigrafix" }
}
}
if ($addin) {
Write-Output "Installed"
exit 0
}
}
exit 1
Network and firewall requirements
Paid-product silent installs must reach the authorization service during installation.
| Requirement | Value |
|---|---|
| Protocol | HTTPS |
| Port | 443 |
| Destination hostname | auth.archigrafix.com |
| Proxy handling | Allow system-context access when deploying through Intune, SCCM, GPO, or RMM |
| TLS inspection | Test before mass rollout to confirm it does not break install-stage authorization |
If authorization traffic is blocked, the installer can fail before copying product files. If one office succeeds and another fails, compare outbound public IP, proxy behavior, and HTTPS reachability to auth.archigrafix.com.
Operational checklist
Before deployment
- Confirm which products are licensed for the customer account.
- Confirm whether the deployment should use trial, floating by IP, secondary IP alias, customer key, desktop serial, or freeware mode.
- Confirm the installer files are signed by Archi Systems AS.
- Confirm the deployment runs elevated.
- Confirm target machines can reach
https://auth.archigrafix.comover port443during installation. - Confirm outbound public IP behavior before relying on floating-by-IP validation.
- Handle desktop serials and customer keys securely.
During deployment
- Use
/Sfor silent installation. - Add
/SERIAL=<value>only when the chosen license model requires it. - Capture process exit codes.
- Capture deployment logs if your wrapper or deployment tool writes them.
- Run a pilot deployment on one product and one machine before wide rollout.
After deployment
- Confirm exit code
0for successful installs. - Confirm product files exist under
C:\Program Files (x86)\Archigrafix\<Product>. - Confirm the add-in manifest exists for the target Revit version.
- Open Revit and confirm the product appears on the Archigrafix ribbon.
- For floating products, confirm runtime license checkout from the target network.
Troubleshooting
Silent install still shows a UAC prompt
The installer was launched from a non-elevated context. Run the deployment from an elevated shell or from an enterprise deployment system that already has local administrator rights.
Silent install exits with an authorization failure
Check the following:
- Is the product licensed for the customer account?
- Is the machine still trial-eligible if this is a trial deployment?
- Is the public IP registered, or configured as a secondary alias?
- Is the customer key correct and mapped to the customer account?
- Is the desktop serial valid for this product?
- Can the machine reach
https://auth.archigrafix.comover port443during installation?
Floating by IP works in one office but not another
The most likely cause is different outbound public IP behavior. Confirm the public IP in the failing office and verify that it is configured on the customer account.
The installer finished but the product is missing in Revit
- Confirm Revit was closed during installation.
- Confirm the installer returned exit code
0. - Confirm the correct Revit version is supported.
- Confirm the add-in manifest was created in the expected Revit add-ins folder.
- Confirm the product files exist in the Archigrafix install directory.
Best practices
- Keep deployment commands practical and copy-pasteable.
- Run a pilot deployment before broad rollout.
- Collect exit codes and deployment logs for every install batch.
- Verify public IP behavior before standardizing on floating-by-IP deployment.
- Verify the customer account has the right product entitlements, not only the right IP aliases.