- 7 minutes to read

Step 7: Run the CLI Workflow (Elevated PowerShell 7)

Run the generated package, the ZIP bundle from Step 6: Review and Download, to install the Environment. The entry point is Nodinite.Installer.Cli.exe, a .NET 10 based installer. On Windows Server, it:

It creates no Log Database; the Logging Service creates the first one on its first start. You run the same workflow for every update.

Before You Start

Tip

  • The CLI runs as the user of the elevated PowerShell 7 prompt.
  • That user needs SQL Server sysadmin rights on the affected SQL Server instances, unless you use Azure SQL Managed Instance.

Review the SQL Server Sysadmin Requirements before you run the CLI workflow.

ZIP bundle content

After extraction, the root contains:

  • InstallationMedia
  • one folder per server, for example nodinitesrv01
  • Nodinite.Installer.Cli.exe

Each server folder holds the generated config.cli.json that the CLI reads, and a readme.txt with the commands for that server.
ZIP bundle with CLI
Example of the extracted ZIP bundle root with InstallationMedia, a server folder, and Nodinite.Installer.Cli.exe.

You don't need to unblock the ZIP bundle or its contents: the installer is signed with Microsoft Authenticode; see Code Signing and Binary Integrity.

Review bundle files before execution

Before you run the installation commands:

  • Review the config.cli.json values for paths, ports, and selected agents.
  • Verify the SqlPackage and ZIP-related paths if placeholders are still present.
  • Keep the extracted structure unchanged, so that media paths resolve.

CLI help and discovery

Use the CLI help to list the commands and their options:

.\Nodinite.Installer.Cli.exe --help
.\Nodinite.Installer.Cli.exe --version
.\Nodinite.Installer.Cli.exe install --help
.\Nodinite.Installer.Cli.exe deploy-environment --help
.\Nodinite.Installer.Cli.exe install-agent --help
.\Nodinite.Installer.Cli.exe uninstall --help
.\Nodinite.Installer.Cli.exe uninstall-agent --help
.\Nodinite.Installer.Cli.exe teardown-environment --help
.\Nodinite.Installer.Cli.exe validate --help
.\Nodinite.Installer.Cli.exe status --help
.\Nodinite.Installer.Cli.exe diagnose --help
  1. Validate the package without changing the machine.
  2. Run a dry run to check the install or update actions.
  3. Deploy when validation and the dry run are clean.
.\Nodinite.Installer.Cli.exe validate --config .\nodinitesrv01\config.cli.json
.\Nodinite.Installer.Cli.exe deploy-environment --config ".\nodinitesrv01\config.cli.json" --dry-run
.\Nodinite.Installer.Cli.exe deploy-environment --config ".\nodinitesrv01\config.cli.json"
flowchart LR V["fa:fa-list-check validate"] -->|"Clean"| DR["fa:fa-flask deploy-environment
--dry-run"] V -->|"Errors"| FIX["fa:fa-wrench Fix config
or prerequisites"] DR -->|"Clean"| DE["fa:fa-play deploy-environment"] DR -->|"Errors"| FIX DE --> BK{"Verified backup of the
Configuration Database?"} BK -->|"Yes"| AP["fa:fa-gears Apply: database schema,
IIS sites, TLS bindings, agents"] BK -->|"No: prompt"| PR{"Back up now,
Continue, or Abort?"} PR -->|"Back up now or Continue"| AP PR -->|"Abort install"| AB["fa:fa-ban Stop without changes"] AP --> VER["fa:fa-circle-check Verify each Core Service"] style V fill:#2678BD,color:#fff style DR fill:#2678BD,color:#fff style FIX fill:#c33d34,color:#fff style DE fill:#E47528,color:#fff style BK fill:#FFD525 style PR fill:#FFD525 style AP fill:#E47528,color:#fff style AB fill:#c33d34,color:#fff style VER fill:#93d16d

Diagram: the checks (blue) run before any change; deploy-environment (orange) stops at the Configuration Database backup gate (yellow) when no verified backup exists; errors and an abort (red) leave the machine unchanged; the run ends with the verification of the Core Services (green).

Installation Progress
Example of installation progress output while the CLI configures the Environment.

Config DB backup confirmation prompt

During deploy-environment, if the Configuration Database has no verified backup, the CLI asks for your intent before it applies schema changes:

  • Back up now: the installer tries to create a verified backup and then continues.
  • Continue: proceed, because you already have a verified backup.
  • Abort install: stop without applying changes.

Config DB backup confirmation prompt
Example of the CLI safety prompt shown when a database upgrade is pending and a backup confirmation is required.

Use this prompt as an explicit safety gate in production environments.

Passing arguments when needed

You can provide secrets and connection strings in the config values, as command arguments, as environment variables, or at the CLI prompts.

Common runtime overrides:

  • --database-connection-string <ConnectionString>: the Configuration Database connection string, when Step 3 is set to provide it at run time
  • --agent-connection-string AgentType=ConnectionString: an Agent Database connection string
  • --agent-connection-string AgentType#Id=ConnectionString: the same, for duplicate agent types
  • --service-password <Password>: the service account password; gMSA accounts need none
  • --oauth2-webclient-secret <Secret> and --oauth2-agentinstall-secret <Secret>: the OAuth client secrets, which the Portal doesn't store (Step 2: Auth)

For prompt-required database values, you can also use environment variables:

  • NODINITE_DATABASE_CONNECTION_STRING
  • NODINITE_AGENT_<TYPE>_CONNECTION_STRING

Common CLI commands

Validate the configuration file and write a JSON report:

.\Nodinite.Installer.Cli.exe validate --config .\nodinitesrv01\config.cli.json --strict-file-locks --output report.json --format json

The install commands differ in scope. Each one installs what's missing and updates what's there:

Command Installs or updates Typical use
install The Core Services only (IIS sites, databases, configuration) A Core-Services-only package, such as the v6 to v7 migration
install-agent One agent Adding or updating one agent later
deploy-environment The Core Services and every agent in the configuration, in one run A new installation or an update of the whole Environment, as in the recommended workflow above

The README.txt at the root of the bundle lists the workflow for your package. To run install unattended:

.\Nodinite.Installer.Cli.exe install --config .\nodinitesrv01\config.cli.json --non-interactive

--non-interactive disables every prompt, so supply all service passwords, OAuth2 secrets, and connection strings up front; a missing value aborts the run. On an upgrade from v6, it also aborts at the "stop the Nodinite 6 Logging/Monitoring services" step, which needs an operator to acknowledge it.

Install one agent:

.\Nodinite.Installer.Cli.exe install-agent --config .\nodinitesrv01\config.cli.json --agent AzureLogicApps

Proxy overrides

To change the proxy behavior from Step 3 for one run, pass proxy options on the installer commands:

  • --proxy-mode <system|none|manual>
  • --proxy-url <Url>
  • --proxy-use-default-credentials or --proxy-no-default-credentials
  • --proxy-bypass-local or --proxy-no-bypass-local
  • --proxy-bypass <Pattern>

Verify the installation

Check Where
Sign in to the Web Client with the administrator from Step 2, for example https://nodinite.contoso.com:<port>/ Install the Web Client
Open the Web API reference at https://nodinite.contoso.com:<port>/scalar Install the Web API
The Log API accepts Log Events at https://nodinite.contoso.com:<port>/LogAPI/api/LogEvent Install the Log API
The Logging Service created the first Log Database Install Log Databases
The Monitoring Service runs and evaluates the agents Install the Monitoring Service
The MCP Endpoint responds, unless Keep the MCP Server stopped is selected Keep the MCP Server Stopped

Use the ports from Allocated ports. Then continue with the Post Installation Steps.

Important behavior notes

  • uninstall removes the Core Services only.
  • teardown-environment removes the agents first, then the Core Services; see Uninstall Nodinite v7.
  • gMSA accounts don't need passwords.

Troubleshooting

Run with --verbose for deeper diagnostics:

.\Nodinite.Installer.Cli.exe deploy-environment --config .\nodinitesrv01\config.cli.json --verbose

When the CLI reports file locks, see File Locks Detected. For a deeper failure analysis, continue with Complete Installation Troubleshooting Guide and the Troubleshooting Overview.

Next Steps