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:
- creates or updates the Configuration Database with SqlPackage;
- creates one IIS web site, with its own port, for each Core Service;
- finds the TLS certificate by subject in
LocalMachine\WebHostingorLocalMachine\Myand binds it (Step 4: Servers); - installs or updates the selected Monitoring Agents and Log Agents.
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
- Complete the Prerequisites on every server, including the Logon as a Service right for the service identities, DCOM Local Activation for the Monitoring Service (Monitoring Service prerequisites), and a configured MSDTC.
- Extract the ZIP bundle and keep the folder structure intact.
- Open PowerShell 7 as administrator, signed in as a user who is a local administrator on the server.
- Run all commands from the bundle root folder.
Tip
- The CLI runs as the user of the elevated PowerShell 7 prompt.
- That user needs SQL Server
sysadminrights 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.

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.jsonvalues 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
Recommended workflow
- Validate the package without changing the machine.
- Run a dry run to check the install or update actions.
- 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"
--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).

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.

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_STRINGNODINITE_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-credentialsor--proxy-no-default-credentials--proxy-bypass-localor--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
uninstallremoves the Core Services only.teardown-environmentremoves 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
Related Topics
- Step 6: Review and Download
- Complete Installation Troubleshooting Guide
- Update Nodinite v7
- Uninstall Nodinite v7
- SQL Server Sysadmin Requirements
- Code Signing and Binary Integrity
- OAuth2 client secrets (Install Nodinite v7 - OpenID)
- Troubleshooting OAuth 2.0 Validation Failures (Error 10.3 / 10.4)
- Step 4: Deploy Core Services with CLI – v6 to v7 migration