The System Insights Analyzer is a powerful tool designed to help you consolidate and analyze computer management data from various sources. By uploading and comparing data from systems like Active Directory (AD), SCCM, or antivirus logs, you can identify discrepancies, find machines that have truly disappeared from your network, and get a unified view of your entire device landscape.
To run this application on your local machine, please follow these steps.
- You must have Node.js (version 18 or later recommended) installed.
- You must have a package manager like npm or Yarn installed.
-
Clone the repository (or download the source code).
-
Navigate to the project directory in your terminal.
-
Install the dependencies by running the following command:
npm install
Once the dependencies are installed, you can start the local development server:
npm run devThe application will now be running and accessible at http://localhost:3000.
This application is designed with your privacy in mind. All file processing and analysis happens entirely within your web browser.
- No Server Uploads: The contents of your uploaded files are never sent to or stored on any server.
- Local Metadata Storage: To enhance your experience, some metadata is stored in your browser's
localStorage. This includes:- Your preferences from the Settings page.
- Column mappings for previously configured files (to enable automatic configuration).
- A summary of files used in your last session.
- No File Content is Stored: The actual contents of your data files are never saved to
localStorageor any other persistent storage in the browser.
- Intelligent Configuration Memory: The app remembers the column mappings for files you've configured before. If you upload a file with the same content again, it will be automatically configured, saving you repetitive setup work.
- Multi-Source Data Ingestion: Upload data from multiple systems in simple
.csvor.txtformat. The app prevents uploading files with the same name to avoid confusion. - Consolidated Machine View: Get a single, unified list of all unique machines found across all your files. This view shows the most recent timestamp a machine was seen by any system, preventing false positives from a single stale data source. It can also display consolidated OS, Last User, Make, and Model information if you map those fields.
- "Truly Disappeared" Machine Detection: By looking at the last seen date across all sources, the app intelligently flags machines that haven't been seen anywhere for a configurable period, helping you identify devices that are genuinely offline or decommissioned.
- Cross-System Discrepancy Analysis: See detailed reports showing which unique machines are present in one data source but missing in another, helping you to synchronize your management systems. Duplicate entries within a file are ignored for this comparison.
- Dynamic Per-File Statistics: As you filter the main consolidated view, the per-file statistics table dynamically updates to reflect the counts and statuses of only the machines in your filtered results. This allows for interactive "what-if" analysis. When a filter is active, affected stats are shown in a
filtered / totalformat, with a tooltip indicating how many machines were filtered out. - Intelligent Date Format Detection: The application automatically analyzes your date columns and suggests the correct format, saving you time and preventing parsing errors. You can still manually adjust the format if needed.
- Flexible Filtering (Wildcards & Regex): Filter the main results view with simple wildcards (
*and?) or powerful regular expressions to quickly find specific machines. - Contextual Analysis Summary: The "disappeared machines" count dynamically updates to show you how many machines in your filtered results match the criteria.
- Configurable Heuristics:
- Disappearance Threshold: Easily set the number of days a machine must be inactive across all systems to be flagged as "disappeared".
- Case-Sensitive Analysis: Choose whether machine name comparisons should be case-sensitive or case-insensitive.
- Intelligent Name Parsing: Automatically handles various computer name formats, including:
computer-namecomputer.domain.com(FQDN)domain\computer
- Robust CSV Parsing: The app correctly handles standard CSV formats, including fields that are enclosed in double quotes and may contain commas (e.g.,
"Windows 11, Enterprise"). - Enhanced CSV Export: Download the complete, filtered "Consolidated Machine View" as a CSV file. The export now includes a dedicated column indicating if a machine is considered "disappeared," as well as detailed columns for OS, Last User, Make, and Model from each source file.
For each management system (e.g., AD, SCCM), export a report containing at least a list of computer names. For best results, also include a "last seen" or "last logon" timestamp and other relevant data like OS, Last User, Make, and Model.
- Format: The file should be a comma-separated value (
.csv) or plain text (.txt) file. The parser correctly handles fields that are enclosed in double quotes, allowing for commas within the data (e.g.,"Windows 11, Enterprise"). - Header: The first line of the file must be a header row containing the column names (e.g.,
ComputerName,LastLogonDate).
Example ad_export.csv:
Name,LastSeen,OperatingSystem
CORP-PC-01,"Nov 15, 2023",Windows 11
"SALES-LAPTOP-05",11/01/2023,"Windows 10, Pro"
DEV-MACHINE,2023-11-02T08:00:00Z,Ubuntu 22.04Drag and drop your prepared data files onto the upload area, or use the "Browse Files" button to select them. You can add multiple files from different sources. You cannot upload two files with the exact same name.
For each file you've uploaded, you need to tell the analyzer how to interpret it.
- Click the "Configure" button on a file card.
- Automatic Configuration: If you've uploaded a file with the same content before, the app will automatically apply your previous settings. You can still click "Edit" to change them.
- In the dialog, select the columns from your file. A preview of your data is shown to help you make the correct selections.
- Computer Name: Required.
- Last Seen Date: Optional.
- Operating System: Optional.
- Last User: Optional.
- Make: Optional.
- Model: Optional.
- Click "Save Configuration".
A green background on the file card indicates it's configured and ready.
If you've selected a "Last Seen" column, a Date Format input will appear. The application will automatically analyze a sample of your data and suggest the most likely date format.
- Verify the Auto-Detected Format: Check that the suggested format correctly matches the dates in your file preview.
- Manual Adjustment: If the guess is incorrect, or for very unusual formats, you can manually edit the format string.
- Match the Format Exactly: The format string must account for all parts of the date and time. For example, for a date like
10/15/2023 10:30, the format isMM/dd/yyyy HH:mm. Note thatMM(uppercase) is for month andmm(lowercase) is for minutes. - Handling Literal Characters: If your date string contains letters that are not part of a format code (like the
Tin2023-10-15T10:30:00), you must wrap them in single quotes. The correct format for2023-10-15T10:30:00isyyyy-MM-dd'T'HH:mm:ss.
- Match the Format Exactly: The format string must account for all parts of the date and time. For example, for a date like
- Standard ISO Formats: If your dates are in a standard ISO 8601 format (e.g.,
2023-11-15T10:00:00Z), you can often leave the format field blank, as the analyzer will parse them automatically.
Once you have at least one file configured, the "Run Analysis" button will become active. Click it to process the data.
After the analysis is complete, you will see a detailed breakdown:
- Analysis Summary: A high-level card showing the count of "Truly Disappeared Machines". If you are filtering the results below, this card will also show a count of disappeared machines within your filtered view.
- Per-File Statistics: A table showing a breakdown for each source file. This table updates dynamically as you filter the Consolidated View, showing statistics for just the machines in your filtered result set. It includes:
- Total Entries: The raw number of rows in the original file.
- Unique Machines: The number of distinct computer names found in that file.
- Present / Stale / No Date: Counts of machines from this file based on their status in the consolidated view (up-to-date, older than the threshold, or present without a date).
- Missing: The number of machines that exist in other files but are not present in this one.
- Total In View: The number of machines currently visible in the filtered Consolidated View.
- Consolidated Machine View: This is the primary result. It shows a master list of every unique machine across all files.
- Filter: Use the filter bar to search for machines. You can use simple wildcards (
*for multiple characters,?for a single character) or switch to Regex mode for advanced filtering. As you filter, the Analysis Summary and Per-File Statistics will update in real-time. - Export: You can export the current (filtered) view to CSV using the button at the top of the card. The export includes a dedicated column indicating whether each machine is "disappeared" and detailed columns for each mapped field from each source file.
- Machine Name: The name of the computer. A row with a light orange background indicates the machine is "truly disappeared."
- OS / Last User / Make / Model: These columns will appear if they are mapped in any file. They show a consolidated, unique list of values found for that machine across all sources.
- Last Seen (Any): The absolute latest timestamp this machine was seen in any of the files, displayed in
dd MMM yyyyformat. - Last Seen Source: The name of the file where the latest sighting occurred.
- Per-File Status: Each subsequent column represents one of your uploaded files. An icon indicates the machine's status in that file:
- ✔ Green Check: Present and the record is not stale.
- ✔ Amber Check: Present, but the record is "stale" (older than the disappearance threshold).
- ? Grey Question Mark: Present in the file, but no date information was provided.
- ✖ Red X: Not present in the file.
- Filter: Use the filter bar to search for machines. You can use simple wildcards (
- Cross-System Discrepancies: This is a collapsed section that you can expand. It shows a pairwise comparison between your files, highlighting the unique machines that exist in one file but are missing in the other.
Navigate to the Settings page from the sidebar to fine-tune the analysis heuristics:
- Disappeared Machine Threshold (Days): Change the number of days of inactivity before a machine is flagged as "disappeared".
- Case-Sensitive Analysis: Toggle whether machine names like "PC-01" and "pc-01" are treated as the same device.