CIS Auditor Guide
Step-by-step instructions for installing, enrolling, and running compliance scans with the CIS Auditor agent on Windows.
Prerequisites
Before installing the agent, make sure the target machine meets these requirements.
| Requirement | Details |
|---|---|
| Operating System | Windows 10 (21H2 or later) or Windows 11 (any edition) |
| Architecture | x86-64 (AMD64) |
| Privileges | Local Administrator (for installation only) |
| PowerShell | 5.1 or later (built-in on all supported OS versions) |
| Network | HTTPS outbound to app.corvus-security.net (port 443) |
| Corvus Account | Free account at app.corvus-security.net |
No inbound ports required. The agent uses outbound HTTPS polling only — it connects to the backend every 30 seconds to check for scan jobs. You do not need to open firewall rules or configure a reverse proxy.
Quick Install (Recommended)
The quickest way to get started is the one-line PowerShell installer. It downloads the agent binary, enrolls the endpoint, and sets up a background service — all in under a minute.
Generate an enrollment token
Log in to the Corvus Security dashboard. In the left sidebar, click Agents, then click the Generate Token button.
A modal will appear showing a one-time enrollment token. Copy the full token — it is valid for 24 hours and can only be used for one enrollment.
The dashboard also shows the complete coreagent enroll command with your token pre-filled. You can copy that command directly and skip to Step 3.
Run the installer (elevated PowerShell)
Open PowerShell as Administrator (right-click → "Run as Administrator"), paste the command below, and replace YOUR-TOKEN-HERE with the token from Step 1.
# Replace the token value with yours
$token = "YOUR-TOKEN-HERE"
& ([scriptblock]::Create((irm 'https://app.corvus-security.net/downloads/install.ps1'))) -Token $token
The script will:
- Download the latest
coreagent.exetoC:\ProgramData\CIS-Auditor\ - Enroll the endpoint using your token
- Register a Windows Scheduled Task (runs as SYSTEM, starts at boot)
- Start the agent immediately
Execution policy: If your machine blocks remote scripts, run PowerShell with -ExecutionPolicy Bypass, or use the ZIP installer described in the Manual Install section.
Alternative: Download and run locally
# Download installer script
Invoke-WebRequest -Uri 'https://app.corvus-security.net/downloads/install.ps1' -OutFile install.ps1
# Run it (still requires elevation)
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Token "YOUR-TOKEN-HERE"
Verify the agent is online
Return to the Agents page in the dashboard. Within 30–60 seconds your new endpoint should appear with status Online.
You can also check the status locally in PowerShell:
# Check scheduled task state (should say "Running")
(Get-ScheduledTask -TaskName CISAuditorAgent).State
# View recent agent log lines
Get-Content "C:\ProgramData\CIS-Auditor\agent.log" -Tail 20
Manual / Offline Install
Use the manual method when you need to deploy via MDM (Intune, SCCM, Ansible), when machines have no direct internet access during install, or when you prefer full control over file placement.
Step 1 – Download the installer package
Download coreagent-installer.zip from the dashboard Agents page or the Releases page. Extract it — you will find:
coreagent.exe— the agent binaryinstall.ps1— interactive PowerShell installerinstall.bat— wrapper that calls install.ps1 with elevationuninstall.ps1— clean uninstaller
Step 2 – Place the binary
Copy coreagent.exe to your chosen install directory. The default path expected by the installer is:
C:\ProgramData\CIS-Auditor\coreagent.exe
Step 3 – Enroll the endpoint
Run the enroll command from an elevated command prompt or PowerShell. Replace the placeholders with your actual values.
REM Command Prompt (elevated)
C:\ProgramData\CIS-Auditor\coreagent.exe enroll ^
--url https://app.corvus-security.net ^
--token YOUR-ENROLLMENT-TOKEN
On success the agent prints [OK] enrolled and writes two files:
C:\ProgramData\CIS-Auditor\agent.json— agent ID and backend URLC:\ProgramData\CIS-Auditor\credentials.enc— DPAPI-encrypted agent secret
Step 4 – Register the background service
Register the agent as a Windows Scheduled Task so it starts automatically and restarts on failure:
# PowerShell (elevated)
$exe = "C:\ProgramData\CIS-Auditor\coreagent.exe"
$action = New-ScheduledTaskAction -Execute $exe -Argument 'run'
$trigger = New-ScheduledTaskTrigger -AtStartup
$settings = New-ScheduledTaskSettingsSet `
-ExecutionTimeLimit ([TimeSpan]::Zero) `
-RestartCount 5 -RestartInterval (New-TimeSpan -Minutes 1) `
-MultipleInstances IgnoreNew -StartWhenAvailable
$principal = New-ScheduledTaskPrincipal -UserId SYSTEM -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName CISAuditorAgent `
-Action $action -Trigger $trigger `
-Settings $settings -Principal $principal -Force
Start-ScheduledTask -TaskName CISAuditorAgent
Unattended / MDM Deployment
For Intune, SCCM, or Ansible deployments, use the install.ps1 script with inline parameters — no interactive prompts:
powershell -ExecutionPolicy Bypass -NoProfile -File .\install.ps1 `
-Token "YOUR-ENROLLMENT-TOKEN" `
-Url "https://app.corvus-security.net"
The script exits with code 0 on success and 1 on failure, so it integrates cleanly with deployment tool error handling.
Running a Scan
Once the agent is enrolled and online, you can trigger a compliance scan from the dashboard or via the API.
From the Dashboard
- 1 Open Scans in the sidebar.
- 2 Click New Scan. Select the target agent, rule pack (e.g. Windows 11 CIS L1), and CIS level.
- 3 Click Run Scan. The job enters the queue and the agent picks it up within 30 seconds.
- 4 The scan page refreshes automatically. Click any result row to see the finding details.
From the Command Line (on the endpoint)
You can also trigger a scan locally for quick testing without the dashboard:
REM Scan with auto-detected OS pack, print results to stdout
coreagent.exe scan
REM Scan a specific pack and CIS level
coreagent.exe scan --pack windows11-cis-l1 --level 1
REM Save results as JSON
coreagent.exe scan --pack windows11-cis-l1 --out results.json
Available rule packs: windows10-cis-l1, windows11-cis-l1. Run coreagent.exe scan --help to see all options.
Understanding Results
Each finding has one of four statuses:
| Pass | The control is correctly configured. No action needed. |
| Fail | The current value does not meet the CIS requirement. Click the row to see the observed vs. expected values and remediation steps. |
| Error | The agent could not collect the required data. Usually means the agent needs elevated privileges for that specific check (e.g. audit policy). |
| N/A | The control does not apply to this configuration (e.g. a domain-specific check on a workgroup machine). |
The compliance score at the top of each scan is calculated as: passed checks ÷ (total − N/A), expressed as a percentage. Error findings count as failed.
Dashboard Tour
Dashboard
The main dashboard shows your fleet at a glance: total agents, online/offline count, recent scan scores, and open support tickets. The Download section at the bottom lets you grab the agent installer directly.
Agents
Lists all enrolled endpoints with their current status, last heartbeat time, and latest scan score. Click an agent row to open its detail page — you can see per-agent scan history and trigger a new scan directly from there.
The Generate Token button creates a new enrollment token for onboarding another endpoint. Tokens expire after 24 hours.
Scans
Shows all scan jobs across all agents. Click any row to open the scan detail page, which includes:
- Overall compliance score with a visual ring gauge
- Pass / Fail / Error / N/A summary cards
- Findings grouped by CIS category (e.g. Account Policies, Windows Firewall)
- Per-finding observed vs. expected value comparison
- Remediation guidance for each failed control
- Export to JSON, CSV, or printable HTML report
Policies
Policies define what gets scanned, when, and at which CIS level. Create a policy to schedule recurring compliance checks without manual intervention.
- Select a rule pack and CIS level (L1 = basic hardening, L2 = strict hardening)
- Optionally restrict to specific CIS categories
- Set a cron schedule (e.g. daily at 02:00, every Monday morning)
Settings
Manage your account, users, and API tokens. Under the Security tab you can:
- Change your password
- Enable two-factor authentication (TOTP)
- Create API tokens (
csk_…) for programmatic access
Scan Policies
Policies let you automate scans on a schedule so compliance is continuously monitored rather than spot-checked. A policy is assigned per-tenant (applies to all agents in your account).
Creating a policy
- Go to Policies → New Policy
- Give it a name (e.g. "Windows 11 Weekly L1")
- Select the rule pack and CIS level
- Optionally filter by CIS categories (leave blank to scan everything)
- Set the schedule: choose a preset (daily, weekly, monthly) or enter a custom cron expression
- Click Save
CIS Level 1 covers basic hygiene — settings that are universally applicable with minimal impact on usability. CIS Level 2 adds stricter controls suited for high-security environments; some L2 settings may affect usability.
Remediation
The scan detail page includes two action icons on every failing finding:
Rescan (refresh icon)
Re-runs the compliance check for this single rule immediately. Use this to confirm a manual fix took effect without running a full scan.
Auto-fix (wrench icon) — registry rules only
Sends a remediation job to the agent. The agent applies the registry fix and immediately rescans the rule. The finding updates inline once the job completes — the badge shows "Fixed — now passing" if it succeeded or "Still failing" if additional action is needed.
Auto-fix scope: Only registry-based CIS controls can be auto-remediated from the dashboard. Controls that require Group Policy, audit policy (auditpol.exe), or service configuration must be fixed manually using the "How to fix" guidance shown in each finding's detail panel.
Configuration
The agent stores its configuration in C:\ProgramData\CIS-Auditor\.
| File | Contents |
|---|---|
| agent.json | Agent ID, backend URL, and enrollment status. |
| credentials.enc | DPAPI-encrypted agent secret. Tied to the SYSTEM account on this machine. |
| agent.log | Rolling log file for heartbeats, scan activity, and errors. |
CLI commands
coreagent.exe <command>
enroll Enroll this endpoint with the backend
run Start the background polling daemon
scan Run a compliance scan (prints results)
heartbeat Send a single heartbeat to the backend
update Check for and apply agent updates
diagnostics Self-test: config, credentials, connectivity, packs
version Print agent version
Running diagnostics
The built-in diagnostics command checks everything in one go:
coreagent.exe diagnostics
It verifies: config file, DPAPI credentials, OS detection, available rule packs, backend connectivity, and a live heartbeat. Look for any lines beginning with FAIL.
Uninstalling
To remove the agent from an endpoint, run the uninstaller from an elevated PowerShell:
# From the installer directory
powershell -ExecutionPolicy Bypass -File .\uninstall.ps1
# Remove config files too (clears credentials.enc and agent.json)
powershell -ExecutionPolicy Bypass -File .\uninstall.ps1 -RemoveConfig
If you no longer have the installer, remove the scheduled task manually:
# Stop and remove scheduled task
Stop-ScheduledTask -TaskName CISAuditorAgent
Unregister-ScheduledTask -TaskName CISAuditorAgent -Confirm:$false
# Remove install directory (optional)
Remove-Item -Recurse -Force "C:\ProgramData\CIS-Auditor"
After uninstalling, the agent will stop sending heartbeats and the endpoint will appear as Offline in the dashboard. You can delete it from the Agents page using the delete action.
Troubleshooting
Agent stays Offline after installation
1. Check the scheduled task is running: (Get-ScheduledTask -TaskName CISAuditorAgent).State should show Running.
2. Read the log: Get-Content "C:\ProgramData\CIS-Auditor\agent.log" -Tail 30
3. Run diagnostics: coreagent.exe diagnostics — look for connectivity failures.
4. Verify outbound HTTPS to app.corvus-security.net:443 is not blocked by your firewall or proxy.
Enrollment fails with "invalid token"
Enrollment tokens expire after 24 hours and can only be used once. Generate a fresh token in the dashboard (Agents → Generate Token) and retry.
Many findings show "Error" status
Most errors are caused by checks that require elevated privileges (e.g. reading audit policy via auditpol.exe or reading specific security policy keys).
The agent runs as SYSTEM via the Scheduled Task, which has the required permissions. If you are running coreagent.exe scan manually from a user session, some collectors will fail — this is expected.
For automated scans from the dashboard, SYSTEM-level access is used automatically and Error counts should be minimal.
Scan completes but findings don't appear
Wait 60 seconds then refresh the page — the agent uploads results after completing the scan and the dashboard refreshes on load.
Check the agent log for upload errors: Get-Content "C:\ProgramData\CIS-Auditor\agent.log" -Tail 30
PowerShell script is blocked by execution policy
Run PowerShell with the -ExecutionPolicy Bypass flag, or download the installer ZIP from the dashboard and double-click install.bat — it handles the policy bypass internally.
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Token "YOUR-TOKEN"
Agent was already installed — how to re-enroll
Re-running the installer automatically stops any existing instance and replaces the binary. It then re-enrolls with the new token. No manual cleanup needed.
To re-enroll an existing installation manually: stop the task, delete credentials.enc and agent.json, then run coreagent.exe enroll --url … --token … again.