All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- HTML report export with charts and graphs
- Baseline comparison mode (compare current vs. previous test run)
- Skip flags (
-SkipCPU,-SkipNetwork, etc.) for targeted testing - CSV export for data analysis
- Memory leak detection module
- Audio device testing
- Intel Arc GPU support
- Network deployment options / centralized log storage
- Multi-language support
Network — Latency Test
$targetPortwas never defined, causingTest-NetConnectionto receivePort=0and throw a validation error on every run — latency test now correctly runs as ICMP-only with no port argumentTest-NetConnection -InformationLevel Detailedremoved; it requires a valid port and is unnecessary for basic ping latency measurementPsPingwas called withIP:Portformat instead of bare IP for ICMP modePsPingresult regex was too strict — minor whitespace variations in output caused results to be silently dropped; regex now uses flexible\s*matching- Added debug output line showing raw PsPing tail when parsing still fails, making future diagnosis possible without re-running the test
Network — Speed Test
- Single hardcoded Hetzner HTTPS URL failed under VPN/proxy TLS interception (Mullvad, Tailscale, corporate proxies) with no fallback — replaced with a 3-URL chain: Cloudflare, Hetzner HTTP, OVH
- Added per-attempt SSL certificate validation bypass to handle MITM interception; bypass is scoped to the request and restored immediately after each attempt regardless of success or failure
- Added minimum file size check (1000 bytes) to prevent a firewall error page from being recorded as a successful download result
Network — Recommendations
- Virtual and VPN adapters (VMware VMnet, Hyper-V vEthernet, Tailscale, Mullvad, WireGuard, TAP-Windows, OpenVPN) were incorrectly flagged as "slow physical NICs" at 100 Mbps
- Recommendation engine now iterates adapter lines individually and excludes known virtual/VPN adapter name patterns before applying the slow-speed check
Reports — Output Location
- Reports were saving to the script root directory; now saved to a
Reports\subfolder Reports\folder is created automatically on first report generation- Energy report (
powercfg /energy) redirected intoReports\alongside text reports - Write-access test updated to target
Reports\folder; error messages now include the specific path that failed
Reports — Encoding
- Report files written as UTF-8 caused Unicode bullets (
•) and arrows (→) to render as mojibake (• â†') in Notepad and legacy text viewers - Switched
Out-Fileencoding from UTF8 to ASCII throughout report generation - Replaced all Unicode bullet (
•) characters with*and arrow (→) characters with-> - Removed Unicode box-drawing characters (
└─) from PowerShell menu display strings - Script file is now fully 7-bit ASCII — no encoding surprises in any editor or viewer
Batch Launcher
- Sysinternals Suite auto-download used a single HTTPS URL with no SSL bypass — same VPN/proxy TLS interception issue as the PS1 speed test; same fix applied
VERIFYsection exit-code branching silently swallowed function output, producing misleading success messages regardless of actual result; simplified to direct output display- Stale reference to legacy
SystemTester_FIXED.ps1filename removed from error message - EXIT screen updated to show correct
Reports\subfolder path
- Tool integrity verification with digital signature checking for all Sysinternals executables
- Dual report system: timestamped Clean Summary and Detailed output saved as separate
.txtfiles - Batch launcher (
SystemTester.bat) with reliable admin elevation and interactive menu - GPU Tools Manager — batch menu option 6 for managing NVIDIA, AMD, and GPU-Z testing utilities
- Enhanced GPU testing: multi-GPU support, NVIDIA-SMI integration, AMD driver detection via registry
- DirectX diagnostics via
dxdiag, OpenGL registry check, hardware-accelerated GPU scheduling detection - Windows Update integration — checks pending updates, lists titles and classifications, reports service status
- WHEA hardware event log scan covering last 7 days
- Network speed and latency testing (initial implementation:
Test-NetConnection,PsPing) - Launcher awareness detection — script detects if launched via batch file for context-aware messages
Test-OSHealth— runs DISM/ScanHealthand SFC for OS integrity (admin only)Test-StorageSMART— collects health status and media type from physical disksTest-Trim— checks SSD TRIM enablement status viafsutilTest-NIC— captures active network adapter details including link speed and MAC addressTest-GPU— GPU and display configuration with DirectX and OpenGL informationTest-Power— battery status andpowercfg /energyreport generation (admin only)Test-HardwareEvents— WHEA error log scan- Support for additional Sysinternals tools:
sigcheck,contig,diskext,listdlls,clockres -AutoRunparameter for unattended full-suite execution with automatic report generation- Color-coded console output (green/yellow/red) for all test results and recommendations
- Recommendations engine — dynamically generated findings covering memory, CPU, disk, SMART, TRIM, network, GPU drivers, Windows Update, and WHEA events
- GPU sub-menu options:
12a(basic info),12b(vendor-specific),12c(GPU memory) - GPU-Z download assistant with file size validation in batch launcher
- Memory usage calculation:
FreePhysicalMemory(reported in KB) was not being converted correctly, causing inflated usage percentages
- Admin elevation method replaced:
net sessioncheck swapped for PowerShellWindowsPrincipal.IsInRolewithFLTMCas fallback — more reliable on systems where the Server service is disabled - Interactive menu expanded to 18 options
- Report executive summary now includes total tests, success/failure counts, success rate, and duration
- Detailed report output cleaned and limited to first 40 lines per tool to reduce file size
- Complete rewrite with modular function structure
- Interactive menu system with numbered options
- Recommendations engine (initial version)
- Improved report formatting with section headers
- Monolithic script refactored into discrete test functions
- All WMI calls migrated to CIM instances for better performance and PowerShell 7 compatibility
- Initial release
- Core Sysinternals tool runner:
psinfo,coreinfo,pslist,handle,clockres,autorunsc,du - Basic system information collection (OS, CPU, RAM, storage)
- Single text report output
- Manual Sysinternals installation required