A PowerShell tool for tracking and analyzing system changes on Windows computers. Creates detailed snapshots of installed programs, services, tasks, registry entries, file systems, and other system components.
This entire project was created using Vibe Coding - no lines of code were manually written. All development, debugging, and optimization was done using VS Code and AI Agents. This demonstrates the power of modern AI-assisted development workflows.
InstallTracker is a configuration management system that documents and analyzes system changes. It enables you to perform "before-and-after" comparisons and quickly identify what changes were made to a system.
The primary script with a modern graphical user interface for system change tracking:
- Create Snapshots: Captures the current system state in CSV and JSON format
- Pre/Post Analysis: Create a PRE snapshot, make changes, then create a POST snapshot to see what changed
- Comprehensive Tracking of:
- π¦ Installed Programs (Uninstall Registry Keys)
- π§ Windows Services
- π Scheduled Tasks
- π Registry Run/RunOnce Keys
- π Folders and Directory Structure
- π Shortcuts and Startup Programs
- π All Files with detailed metadata
-
Custom Scan Paths: Define any root paths for tracking custom installations
- Supports environment variables (%USERPROFILE%, %APPDATA%, etc.)
- Handles hidden folders (AppData, System folders, etc.)
- Persistent configuration in JSON format
- GUI-based path management
-
Detailed Change Reports:
- Automatic before/after comparison
- Formatted text reports with all changes listed
- Separate counts for added/removed items by category
- Timestamp-based file organization
-
Automatic Version Checking:
- Checks GitHub for new versions at startup
- Automatic download and installation
- Seamless update process with backup
-
Modern UI:
- WPF-based graphical interface
- Color-coded status messages
- Real-time progress updates
- Settings management panel
A companion script for generating and cleaning up test data:
- Development Testing: Generate test files and registry entries for development
- Training: Create sample installations to test InstallTracker functionality
- Validation: Verify that InstallTracker correctly tracks changes
-
Create Test Data: Generates realistic system changes:
- Test folders in
C:\Program Files\ - Test files in
%LOCALAPPDATA%\ - Registry entries simulating installations
- Test shortcuts and startup programs
- Sample service entries
- Test folders in
-
Delete Test Data: Cleans up all created test data:
- Removes test folders and files
- Cleans up registry entries
- Restores system to clean state
-
Safe Operation:
- Only creates/removes data it created
- Confirmation prompts before deletion
- Error handling and rollback capabilities
A convenient batch file to launch InstallTracker with proper permissions:
- Easy Execution: Just Double-click or Right-click and select "Run as administrator"
- ExecutionPolicy Bypass: Handles PowerShell execution policy automatically
- Error Handling: Checks for required files and shows helpful error messages
- Same Directory Detection: Automatically finds InstallTracker.ps1 in the same folder
- Place
InstallTracker.batin the same folder asInstallTracker.ps1 - Double-click on
InstallTracker.bator right- click and Select "Run as administrator" - InstallTracker will start
- Windows PowerShell 5.1 or higher
- .NET Framework 4.7.2+ (for JSON processing and WPF UI)
- Windows 10 or later
- Optional Administrator rights (for full access to registry, services, and system folders)
-
Download all files to a folder:
InstallTracker.ps1(main application)InstallTracker.bat(launcher) β Easiest way to startInstallTracker-TestData.ps1(optional - for testing)
-
Option A - Using Batch File (Recommended):
- Right-click
InstallTracker.batβ Run as administrator - InstallTracker will start
- Right-click
-
Option B - Using PowerShell Directly:
powershell -NoProfile -ExecutionPolicy Bypass -File "C:\path\to\InstallTracker.ps1"
-
First Run - Create PRE Snapshot:
- Click the "PRE" button
- System will scan and capture current state
- Results saved to
_Snapshots\Reports_Pre\
-
Make System Changes:
- Install new software
- Add/delete files
- Modify settings
- Any other changes you want to track
-
Create POST Snapshot:
- Click the "POST" button
- System will scan again and compare with PRE
- Automatic report generated showing all changes
-
Review Report:
- Report opens automatically (option to open)
- Shows all added/removed items by category
- Save report for documentation
- Click "SETTINGS" button
- In the settings panel:
- Add Path: Enter folder path and click "Add"
- Remove Path: Select path and click "Remove"
- Enable/Disable Scans: Check/uncheck scan options
- Version Check: Enable automatic update checking
- Click "SAVE SETTINGS" to persist changes
# Create test installations and files
& "C:\path\to\InstallTracker-TestData.ps1" -Action Create
# Later: Clean up all test data
& "C:\path\to\InstallTracker-TestData.ps1" -Action DeleteThe easiest way to start InstallTracker:
- Locate
InstallTracker.batin your folder - Right-click on it
- Select "Run as administrator"
- InstallTracker starts!
The batch file handles:
- β ExecutionPolicy bypass automatically
- β Error checking for required files
- β Proper exit code handling
InstallTracker/
βββ InstallTracker.ps1 # Main application (GUI)
βββ InstallTracker-TestData.ps1 # Test data generator
βββ InstallTracker-Config.json # Configuration (auto-created)
βββ README.md # This file
βββ _Snapshots/ # Generated reports
βββ Reports_Pre/ # PRE snapshot files
β βββ services_pre_*.csv/.json
β βββ tasks_pre_*.csv/.json
β βββ runkeys_pre_*.csv/.json
β βββ uninstall_pre_*.csv/.json
β βββ folders_pre_*.csv/.json
β βββ shortcuts_pre_*.csv/.json
β βββ files_pre_*.csv/.json
β
βββ Reports_Post/ # POST snapshot files
β βββ services_post_*.csv/.json
β βββ tasks_post_*.csv/.json
β βββ ... (same structure as Pre)
β
βββ ChangeReport_*.txt # Final comparison report
Automatically created on first settings change save (if nothing is changed and saved the default values are used). Stores your preferences:
{
"rootPaths": [
"%USERPROFILE%",
"%APPDATA%\\Microsoft\\Windows\\Start Menu",
"C:\\Program Files",
"C:\\ProgramData",
"C:\\Users\\Public\\Desktop",
"C:\\Program Files (x86)"
],
"scanOptions": {
"services": true,
"runKeys": true,
"uninstallKeys": true,
"startMenuShortcuts": true,
"scheduledTasks": true
},
"checkVersions": true,
"gitHubRepository": "bergerpascal/InstallTracker"
}The system automatically expands these environment variables:
| Variable | Example Value |
|---|---|
%USERPROFILE% |
C:\Users\Username |
%APPDATA% |
C:\Users\Username\AppData\Roaming |
%LOCALAPPDATA% |
C:\Users\Username\AppData\Local |
%ProgramFiles% |
C:\Program Files |
%ProgramFiles(x86)% |
C:\Program Files (x86) |
%ProgramData% |
C:\ProgramData |
%WINDIR% |
C:\Windows |
- Comma-Separated Values
- Compatible with Excel, databases, analysis tools
- Easy to filter and sort
- Human-readable
- Structured data format
- Ideal for programmatic analysis
- API integration ready
- Long-term archiving
- Deep nesting for complex data
- Human-readable summary
- Organized by change type
- Includes counts and details
- Ready for printing or documentation
- Scans all configured root paths
- Recursively reads folders and files (including hidden folders)
- Queries Windows Services registry
- Reads Scheduled Tasks
- Exports Run/RunOnce registry keys
- Exports Uninstall registry keys
- Captures all data to CSV and JSON files
- Saves with timestamp for organization
- Repeats the scanning process
- Compares each category against PRE snapshot
- Identifies added items (not in PRE)
- Identifies removed items (not in POST)
- Generates detailed comparison report
- Shows summary statistics
- Added: Exists in POST but not in PRE
- Removed: Exists in PRE but not in POST
- Unchanged: Exists in both (not reported)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser# Open PowerShell with Administrator rights, then:
& "C:\path\to\InstallTracker.ps1"AppData and Hidden Folders Not Being Scanned
- The script uses
-Forceparameter to include hidden folders - If you still have issues, try adding explicit paths:
%USERPROFILE%\AppData\Local%USERPROFILE%\AppData\Roaming
Remove-Item "InstallTracker-Config.json"
# Restart script - new config will be created with defaults- Ensure
_Snapshotsfolder is writable - Check Administrator rights
- Verify sufficient disk space
- Check antivirus isn't blocking file operations
- β Full GUI with modern WPF interface
- β Service, Task, Registry, and File scanning
- β Recursive folder traversal with error handling
- β Hidden folder support (AppData, System folders)
- β Before/after comparison and reporting
- β Configuration management via JSON
- β Automatic version checking and updates
- β Comprehensive status and progress reporting
- β CSV and JSON export formats
- β Error recovery and resilience
- Regular Snapshots: Take PRE snapshots regularly to establish baselines
- Clear Documentation: Always save reports for later reference
- Safe Testing: Use TestData script in controlled environments first
- Backup Important Data: Before making system changes
- Run as Admin: Always run with Administrator privileges
- Review Changes: Always review the report before taking action
Use freely for personal and commercial purposes.
Created with Vibe Coding - Entirely developed using VS Code and AI Agents
Version: 1.0.1
Last Updated: January 23, 2026