Still looking for CSV Samples, just a header and 1 line of data, from the following Scan Sources: ConnectSecure, Crowdstrike Spotlight, Qualys, Rapid7 and Tenable.
This is to preconfigure colums so the uploads will be even faster.
Reach out to me on the NinjaOne Discord by doing @lobbie
A Windows PowerShell-based GUI and CLI tool for filtering and uploading vulnerability scan data to NinjaOne via API.
- ✅ WPF-based modern user interface (dark-themed)
- ✅ CSV viewer with filtering (CVSS score, severity level, keyword)
- ✅ Column selection and hostname domain stripping
- ✅ Secure storage of API credentials using DPAPI
- ✅ NinjaOne API integration (token-based with auto-refresh)
- ✅ Upload filtered CSVs to a chosen scan group
- ✅ Import/export filter configurations
- ✅ Full CLI (headless) support for automation
- PowerShell 5.1 or later
- Windows only (WPF and DPAPI required)
- NinjaOne API access (Client ID, Secret, Base URL)
Make sure your API client has the following scope configured:
monitoring management offline_access
See the screenshot on how to properly set up your API Client App ID's in NinjaOne

This is required to authenticate, fetch scan groups, and upload CSV files.
-
Run the script:
.\NinjaOneVulnerabilityImporter.ps1
-
Load a CSV file (exported from a vulnerability scanner)
-
Use the filters or column selection to clean your dataset
-
Connect to NinjaOne using your API credentials
-
Select a scan group and upload
Run the script with -UploadOnly and required parameters:
.\NinjaOneVulnerabilityImporter.ps1 `
-CSV "C:\Scans\latest.csv" `
-ClientID "your-client-id" `
-ClientSecret "your-client-secret" `
-BaseURL "eu.ninjarmm.com" `
-ScanGroupID 1234 `
-UploadOnly- API credentials are encrypted using DPAPI and stored per-user/machine in exported filter JSON files.
- Log files are written to:
%APPDATA%\NinjaOneVulnerabilityImporter\log.txt
You can import/export settings (filters, columns, API settings) via the GUI.
Example exported JSON:
{
"filters": ["test", "unmanaged"],
"autoExport": true,
"ScanSource": "Qualys",
"SelectedColumns": ["deviceName", "cvssScore", "vulnerabilitySeverityLevel"],
"ClientID": "Encrypted",
"ClientSecret": "Encrypted",
"BaseURL": "eu.ninjarmm.com"
}Based on the original concept by AIVenom

