Free · single machine

WinSentinel CLI reference

One command scans your Windows machine for firewall gaps, missing updates, weak accounts, exposed services, and dozens of other misconfigurations, then scores your posture out of 100. This page lists every command, option, and exit code — and all of it is free and unlimited on a single machine.

Install & update

WinSentinel ships as a .NET global tool. If you have the .NET SDK, you are one command away.

Install, run, keep current
# install (or upgrade) from NuGet
dotnet tool install --global WinSentinel.Cli

# run your first audit
winsentinel --audit

# check the version, then self-update from NuGet
winsentinel --version
winsentinel self-update            # add --check to compare only

Invoke everything as winsentinel <command> [options]. Run winsentinel --help any time for the built-in reference.

Core commands

The everyday loop: scan, score, fix, re-check.

CommandWhat it does
--audit, -aRun a full security audit and print color-coded results with per-module scores and remediation.
--score, -sPrint the overall security score and letter grade only (fast, great for a status glance).
--fix-all, -fRun an audit and auto-fix every fixable finding, with elevation prompts where required.
--statusQuick security posture dashboard from the last run — no new scan.
--checklistGenerate a prioritized remediation checklist (fix-this-first ordering).
--hardenGenerate a reviewable PowerShell hardening script you can inspect before running.
--summaryExecutive, plain-English security brief suitable for a stakeholder.
--threatsBuild a STRIDE threat model from the current audit findings.
--attack-pathsKill-chain attack-path analysis with chokepoint detection.
--version, -vShow version info. Add --quiet or --json for CI / inventory use.
--help, -hShow the full built-in help.
Everyday usage
winsentinel --audit                       # full audit, colored output
winsentinel --score --quiet                # score only, no formatting
winsentinel --audit --modules firewall,network   # scan specific modules
winsentinel --fix-all                     # auto-fix everything fixable
winsentinel --checklist                   # prioritized fix plan

Output formats & reports

Any command that produces findings can render them in a machine- or human-friendly format, and be saved to a file.

OptionEffect
--json, -jOutput as JSON (machine-parseable) for scripting and pipelines.
--htmlRender a standalone HTML report.
--markdown, --mdRender GitHub-flavored Markdown.
--csvRender CSV, one row per finding.
-o, --output <file>Write output to a file instead of stdout.
--modules, -m <list>Run only specific modules (comma-separated).
--profile, -p <name>Apply a compliance profile: home, developer, enterprise, or server.
--quiet, -qMinimal output (score + exit code only).
--threshold, -t <n>Exit non-zero if the score is below n (0–100) — the CI/CD gate.
--show-ignoredInclude suppressed findings in the audit output.
Reports & CI gate
winsentinel --audit --html -o report.html      # save an HTML report
winsentinel --audit --markdown -o report.md     # save Markdown
winsentinel --audit --json                     # JSON for scripting
winsentinel --audit --profile enterprise        # apply a profile
winsentinel --audit --threshold 90              # CI/CD gate: fail if < 90

History & trends

Every scan is stored locally, so you can see what changed, where you are heading, and which findings never go away.

CommandWhat it does
--historyView past audit runs and score trends. Add --compare, --diff, --days <n>, or --limit <n>.
--trendScore trend analysis over time. Add --trend-days <n>, --alert-below <n>, --trend-modules.
--forecastPredict a future score from historical trend. Add --forecast-days <n> (max 365) or --forecast-weekly.
--burndownFindings burndown chart with a zero-date projection. Add --burndown-days, --burndown-severity.
--ageFinding-age tracker: report / priority / chronic / new / resolved.
--noiseIdentify the noisiest finding sources across your audit history.
--heatmapGitHub-style calendar heatmap of your audit activity.
--missionGoal-oriented improvement plan. Add --mission-target <n> and --mission-phases <n>.
See what changed & where you’re headed
winsentinel --history --diff             # new / resolved since last run
winsentinel --history --compare          # latest two runs side-by-side
winsentinel --trend --alert-below 80     # alert if score drops below 80
winsentinel --forecast --forecast-days 90 --forecast-weekly
winsentinel --age priority              # what to fix first

Ignore rules & baselines

Suppress accepted-risk findings so your score reflects reality, and snapshot a known-good state to detect drift.

CommandWhat it does
--ignore add <text>Suppress findings matching text. Scope with --ignore-module, --ignore-severity, --ignore-reason, --match-mode (exact/contains/regex), --expire-days.
--ignore listShow all active ignore rules with their IDs.
--ignore remove <id>Remove a single ignore rule by ID.
--ignore clearRemove every ignore rule.
--ignore purgeRemove only the expired ignore rules.
--baseline save <name>Save the current state as a named baseline. Add --desc "..." or --force to overwrite.
--baseline listList all saved baselines.
--baseline check <name>Compare the current posture against a saved baseline (drift detection).
--baseline delete <name>Delete a saved baseline.
--tagManage finding tags & annotations: add / remove / list / search / report / autotag / rename / delete / export / import.
Suppress noise, snapshot good state
winsentinel --ignore add "SMB" --ignore-reason "Accepted risk"
winsentinel --ignore add "^BitLocker" --match-mode regex
winsentinel --ignore add "test" --expire-days 30   # auto-expire in 30d
winsentinel --baseline save prod --desc "Golden image"
winsentinel --baseline check prod --json          # drift as JSON

Compliance mapping & benchmarks

Map every finding to the frameworks auditors ask about, and see how your score compares to your peer group. On a single machine this is entirely free — fleet-wide compliance rollups across many machines are the Pro tier.

CommandWhat it does
--profilesList the available compliance profiles.
--complianceMap findings to frameworks: CIS, NIST, PCI-DSS, HIPAA, SOC 2, Essential 8.
--compliance-framework <f>Single framework: cis, nist, pci-dss, hipaa, soc2, essential8.
--compliance-gapsShow only failing / partial controls (gap analysis).
--compliance-allShow all frameworks in full detail.
--benchmarkCompare your scores against peer-group benchmarks.
--benchmark-group <g>Peer group: home, developer, enterprise, server, or auto.
--benchmark-allCompare against all peer groups at once.
Framework mapping & peer comparison
winsentinel --compliance --compliance-framework cis
winsentinel --compliance --compliance-gaps       # only what fails
winsentinel --benchmark --benchmark-group developer
winsentinel --benchmark-all --benchmark-format json

System inventory

Snapshot exactly what is installed and running — the raw material for a security review or an asset record.

Command / optionWhat it does
--inventorySnapshot installed apps, services, listening ports, startup items, and scheduled tasks.
--inventory-format <f>Output format: text (default), json, markdown.
--no-appsSkip installed applications.
--no-servicesSkip Windows services.
--no-portsSkip listening ports.
--no-startupSkip startup programs.
--no-tasksSkip scheduled tasks.
Snapshot what’s installed & running
winsentinel --inventory                          # full snapshot
winsentinel --inventory --inventory-format json   # as JSON
winsentinel --inventory --no-apps --no-tasks     # ports/services/startup only

Export findings

Ship findings to other tools. export is a first-class subcommand — SARIF makes it trivial to feed GitHub code scanning.

CommandWhat it does
export jsonExport findings as JSON.
export csvExport findings as CSV (one row per finding).
export sarifExport SARIF for GitHub code scanning & other SAST viewers.
export markdownExport a GitHub-flavored Markdown report.
-o, --output <file>Write the export to a file instead of stdout.
Feed other tools
winsentinel export json  -o findings.json
winsentinel export csv   -o findings.csv
winsentinel export sarif -o results.sarif    # upload to GitHub code scanning
winsentinel export markdown -o findings.md

Real-time monitor & scheduled scans

Keep watching after the first scan. The monitor reacts to posture changes as they happen; scheduled scans run audits unattended. Both are free single-machine features — no license, no account.

monitorReal-time watch
monitor startStart the real-time security monitor in the foreground.
monitor stopStop the running monitor process.
monitor statusCheck whether the monitor is running.
scheduleUnattended scans
schedule createCreate or update a recurring scheduled scan.
schedule statusShow the current schedule configuration.
schedule resultsList results from past scheduled scans.
schedule removeRemove the scheduled scan task.
Watch continuously, scan on a schedule
winsentinel monitor start          # real-time posture watch
winsentinel monitor status         # is it running?
winsentinel schedule create        # set up a recurring scan
winsentinel schedule results       # review unattended-scan results

Agent daemon

The agent is a background daemon (or a Windows Service) that runs local scans on a schedule. It is free in standalone mode — no license required — giving you unattended auditing on a single machine. If you later add a Pro license, the same agent can also register with a central control plane and accept remote commands; that control plane is the Pro tier.

CommandWhat it does
agent startStart the agent in the background.
agent statusShow agent status and health.
agent stopStop the running agent.
agent installInstall the agent as a Windows Service.
agent uninstallRemove the Windows Service.

Standalone agent mode needs no account. Registering agents into a managed fleet — the control plane, remote dispatch, and RBAC — is WinSentinel Pro.

Everything above is free

Every command on this page runs unlimited on a single machine at no cost — full audits, one-click fixes, history, trends, compliance mapping, reports, the monitor, scheduled scans, and the standalone agent. There is no license gate on single-machine WinSentinel.

WinSentinel Pro begins where one machine ends. When you need to manage many machines as a fleet — a central posture dashboard, remote scan/fix dispatch, policy push, cross-node compliance rollups, drift alerts, and role-based access — that is the winsentinel fleet commands and the control plane, and that is Pro.

Exit codes

Every run returns a process exit code, so you can gate a CI/CD pipeline on posture without parsing output.

CodeMeaning
0All checks pass (or score is at/above --threshold).
1Warnings found (or score below --threshold).
2Critical findings found (or a trend alert triggered).
3An error occurred during execution.
GitHub Actions gate
- name: WinSentinel audit gate
  run: |
    dotnet tool install --global WinSentinel.Cli
    winsentinel --audit --threshold 90    # non-zero exit fails the job

Audit modules

Target a subset of checks with --modules. Use these short names (comma-separated):

firewall updates defender accounts network processes startup system privacy browser appsecurity encryption eventlog

Each of these expands into many individual checks. See the full module catalog for every check WinSentinel runs.

Audit your machine in one command

Install the free CLI, run winsentinel --audit, and know your Windows security posture in seconds.