Toggle Nav
 

Silent Installer Guide

Deployment Guide

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:

  1. Detect silent mode.
  2. Parse /SERIAL=<value> if it is present.
  3. If no serial was passed, attempt to use a previously stored license value from the current user’s registry profile.
  4. Call the authorization service during installation.
  5. Default to invalid if the response is missing or cannot be confirmed.
  6. 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>\*.addin
Older 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.com over port 443 during installation.
  • Confirm outbound public IP behavior before relying on floating-by-IP validation.
  • Handle desktop serials and customer keys securely.

During deployment

  • Use /S for 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 0 for 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.com over port 443 during 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.