Windows Agent (Installer)
Install the NeuroStrike agent on Windows with the signed MSI — interactively or silently, connected or air-gapped.
This guide installs the NeuroStrike agent on a Windows host using the signed MSI installer. The same package works for a double-click install on one server and a silent, fleet-wide rollout through Intune, SCCM, or Group Policy.
The agent runs on the Windows host you install it on. It assesses that host and, when authorized, targets on its network. For a fully offline site, nothing ever connects to the internet — see the air-gapped path below.
Before you begin
| You need | Details |
|---|---|
| A Windows host | Windows Server 2016 / Windows 10 or later (64-bit) for the native agent |
| Local administrator | Required to install a system service |
| Network — one of | Outbound HTTPS (443) to the relay, or offline media (USB) for an air-gapped host |
| A profile in mind | Standard, Air-gapped, or OT-safe (below) |
Older or legacy hosts — Windows Server 2012 R2, 2008, or Windows 7, common on OT and legacy estates — can't run the native agent, but they're still covered: run the agent on a nearby modern host (or a small Linux box) and assess the legacy machine over the network, with nothing installed on it. See Older and legacy hosts.
Choose a deployment profile
The installer applies safe defaults based on the profile you pick. You can still adjust individual components.
| Profile | Use it for | Defaults |
|---|---|---|
| Standard | Normal IT estates | Relay-connected; nuclei on, nmap off |
| Air-gapped | Isolated / sovereign sites | No network egress; offline licence; tools off |
| OT-safe | Industrial / OT / SCADA | Passive, read-only ceiling; active tools and nmap off |
Install (interactive)
Download and run the MSI
Download NeuroStrikeAgent.msi from the Windows agent installer card on the Agents page of
your NeuroStrike dashboard (or copy it in on media for an air-gapped host) and run it. Approve the
administrator prompt.
Accept the licence and pick a profile
Accept the licence, then choose Standard, Air-gapped, or OT-safe.
Choose components
The Core agent is always installed. Optionally add:
- Nuclei — template-based vulnerability scanning (bundled).
- Nmap — network discovery; installs the Npcap capture driver (you'll be asked to accept its licence).
Leave both unchecked for a core-only install — the agent still assesses the host and enrolls; it simply reports that those scan engines are unavailable.
Finish the install
Keep the recommended virtual service account, review the summary, and click Install. The agent installs as a Windows service and starts.
Enroll the agent
The installer runs this as a step before it finishes, so the agent is enrolled the moment setup
completes. You can also run it later with neurostrike-agent activate. How you authenticate depends
on whether the host has internet.
Connected (relay)
No token is ever typed into the installer — approval happens in your dashboard.
Approve it
In your NeuroStrike dashboard, open Agents → Activate, sign in, and enter the code. The agent receives its token and shows ONLINE.
Air-gapped (offline)
The host never touches the internet, so it activates with a small licence file instead of signing in. Nothing is installed from the USB — the agent runs on the host; the USB just carries files in and out.
Copy this computer's Activation ID
On first run the installer shows an Activation ID — a short code that identifies this computer. Copy it to your USB stick.
Get your licence
On any computer with internet, send the Activation ID to your NeuroStrike contact. You get back a
small license.jwt file. Copy it onto the USB.
Add the licence to the host
Carry the USB back and point the installer at the licence file (or drop it in place). The agent verifies it offline and starts — no connection is ever made.
The same USB carries nuclei templates and vulnerability data in, so an offline host stays current — your NeuroStrike contact provides these as a single bundle.
Silent / fleet deployment
For Intune, SCCM, or Group Policy, drive every choice through MSI properties — no UI is shown.
Property values are case-sensitive: PROFILE is standard, airgapped, or ot.
msiexec /i NeuroStrikeAgent.msi /qn PROFILE=ot ADDLOCAL=CoreAgent RELAYURL=wss://agents.neurostrike.commsiexec /i NeuroStrikeAgent.msi /qn PROFILE=standard ADDLOCAL=CoreAgent,Nuclei| Property | What it sets |
|---|---|
PROFILE | standard, airgapped, or ot |
ADDLOCAL | Components: CoreAgent, Nuclei, Nmap |
RELAYURL | Relay WebSocket URL |
ALLOW / EXCLUDE | In-scope and excluded hosts / CIDRs (;-separated) |
EEAONLY | Confine the engagement to the EEA |
RETENTIONDAYS | Data-retention term before certified purge |
REQUIREAPPROVAL / APPROVALMINCLASS | Human-in-the-loop approval and its threshold |
REPORTLANG | Report language (e.g. en, nb) |
Never pass the enrollment token as a plain property — it would appear in install logs and the
registry. Use activate for enrollment, or a short-lived hidden enrollment property with
verbose logging disabled.
Verify
neurostrike-agent doctorA connected agent shows ONLINE in the dashboard. An air-gapped agent can run a first host assessment:
neurostrike-agent assess --require-roe=false
neurostrike-agent report --out assessment.htmlAdding tools later
The agent is a thin runner over a wide tool catalog and fails soft when a tool is absent. Core host assessment needs no external tools; network discovery needs nmap, and template scans need nuclei. The broader offensive toolset (impacket, netexec, and similar) is bring-your-own and, being largely Linux-native, is best run from a Linux agent assessing Windows targets over the network.
Custom instructions & guardrails
You control what the agent may do and how it behaves through its engagement file and a plain-text instructions file — no coding, and most of it optional. The full list is in the Configuration reference; the essentials are below. There are two kinds of rule, and the difference matters:
- Hard limits (enforced). Anything the agent must never touch goes in
scope.deny— those hosts are not probed, resolved, or even reported. Cap how intrusive it can get withlimits.max_class(read-only → exploit), block specific tools withtools.deny, and set allowedhours. These are enforced in code. - Guidance (advisory). Free-form direction — focus areas, tone, things to prefer or avoid — goes
in
guidance:or a plain.neurostrike/instructions.mdfile. The agent reads it as context.
If a rule truly must hold — "never touch the billing server" — put it in scope.deny, not only in
instructions. Guidance is advisory; scope.deny is enforced.
scope:
allow: [10.20.0.0/16]
deny: [10.20.9.0/24] # never touched
limits:
max_class: low_impact_active # no intrusive/exploit tooling
hours:
timezone: Europe/Oslo
windows:
- { days: [Sat, Sun], from: "02:00", to: "06:00" }
tools:
deny: [sqlmap] # block specific tools
guidance: >
Focus on the public web tier and the VPN gateway. Prefer verification over
breadth. Do not attempt credential brute-forcing.# House rules
- Treat anything under /admin as sensitive — report, don't exploit.
- Our change window is 02:00–06:00 CET; avoid noisy scans outside it.These files live beside the agent's data in C:\ProgramData\NeuroStrike and apply to every run on
this host.
Human-in-the-loop approval
For hands-on or sensitive engagements, keep a person in control of every risky action:
- Require approval per action. On the on-prem AI relay, set
REQUIRE_APPROVAL=trueandAPPROVAL_MIN_CLASS(defaultintrusive_active;read_only→exploit, orall). Each proposed command at or above that level pauses for an operator to approve on the console before it runs — exploit-class and AI-generated payloads always require approval. - Record supervision. Set
supervision: attendedin the engagement file when a human oversees the run.
The installer's Oversight & rules step can turn these on for you; you can also change them later.
Older and legacy hosts
The native agent needs Windows Server 2016 / Windows 10 or later. Older machines — Server 2012 R2, 2008, or Windows 7, still common on OT and legacy estates — are covered without installing anything on them:
- Run the agent on a nearby modern host (or a small Linux box) on the same network.
- Add the legacy machine as a target; the agent assesses it over the network — ports, services, SMB, and known vulnerabilities.
This keeps fragile or unsupported hosts untouched while still bringing them into scope. For deep on-host (assumed-breach) checks that need local access on a legacy OS, ask us about a legacy build.
Updating and support
Apply updates by installing the newer MSI; your state in C:\ProgramData\NeuroStrike — audit chain,
engagement files, licence, and templates — is preserved. Security updates are provided for the
committed support period.
Uninstall
Uninstall from Apps & features (Settings → Installed apps → NeuroStrike Agent → Uninstall) or with
msiexec /x NeuroStrikeAgent.msi. A standard uninstall:
- stops and removes the Windows service,
- removes the program files, Start-menu shortcut, firewall rule, environment variables and registry keys,
- removes credential remnants — the enrollment token, the console operator password and the local-model override are always deleted, so an uninstalled host leaves no secret behind,
- retains the records — findings and the tamper-evident audit chain are kept (or exported) as a compliance record rather than silently deleted.
Destroying the data too
The records are kept by design. To remove them as well, choose one of:
-
Certified destruction (recommended for engagement close-out). Before uninstalling, run the agent's
purgecommand with its confirm flag. It destroys the findings and state and writes a dated destruction certificate into the audit chain — the written evidence a data-processing agreement's retention and destruction clauses ask for. -
Full wipe at uninstall. Pass
REMOVEDATA=1:msiexec /x NeuroStrikeAgent.msi REMOVEDATA=1 /qnThis recursively deletes
C:\ProgramData\NeuroStrike, records included. Use it only when a certificate is not required.
Troubleshooting
| Symptom | Fix |
|---|---|
| Agent stays offline (relay) | Check outbound 443 to the relay; re-run activate. |
| “Licence invalid for this machine” (air-gapped) | The licence is tied to this computer’s Activation ID — re-request it with the ID shown on this host. |
| Scan returns nothing on an OT host | Expected if the profile is passive; raise the ceiling only with authorization. |
| A tool “not installed” in results | That optional component was not selected — install it or run the Linux agent for the full toolset. |