@@ -5,143 +5,138 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8- ** Update 9-2-2025 **
9- ** 🔧 General Improvements **
10- - Improved visual formatting using consistent separators (-------------------------------------) and color-coded headers.
11- - Run As Administrator Check/Approval for BAT file execution
12-
13- ** 🧠 Expanded Diagnostics **
14- New Diagnostic Modules Added:
15- - Test-OSHealth: Runs DISM and SFC scans for OS integrity.
16- - Test-StorageSMART: Collects SMART and reliability data from physical disks.
17- - Test-Trim: Checks SSD TRIM status.
18- - Test-NIC: Captures active network adapter details.
19- - Test-GPU: Summarizes GPU and DirectX info via dxdiag.
20- - Test-Power: Reports battery status and generates an energy report.
21- - Test-HardwareEvents: Scans for WHEA hardware error logs.
22-
23- ** Expanded Toolset: **
24- Added support for additional Sysinternals tools: sigcheck.exe, contig.exe, diskext.exe, listdlls.exe, clockres.exe.
25- - 🎨 Enhanced Console Output
26- - Color-coded console feedback:
27- - ✅ Success: Green
28- - ⚠️ Warning: Yellow
29- - ❌ Failure: Red
30- Recommendations are now printed with color-coded Write-Host output based on severity.
31-
32- ** 📊 Improved Reporting **
33- Executive Summary includes:
34- - Total tests run
35- - Success/failure counts
36- - Success rate (%)
37- - Total test duration
38-
39- Detailed Results:
40- - Cleaned and truncated tool output for readability.
41- - Limited to first 15 lines per tool to avoid clutter.
42-
43- Recommendations Section:
44- - Dynamically generated based on test outcomes.
45- - Includes memory, CPU, disk, SMART, TRIM, and WHEA insights.
46-
47- Report Statistics:
48- - Displays file sizes and compression ratio between clean and detailed reports.
49-
50- ** 🧭 User Experience Enhancements **
51- Interactive Menu:
52- - Expanded to 17 options including new diagnostics and report generation.
53- - Clear prompts and color-coded choices for better navigation.
54-
55- AutoRun Support:
56- - Automatically runs all tests and generates reports when -AutoRun is used.
57-
58- Error Handling:
59- - Improved error messages with line number references.
60- - Graceful fallback for missing tools or failed tests.
61-
62- ** 🔧 Batch File Changes Made: **
63- Elevation Logic Overhaul:
64- - Replaced net session check with SID-based elevation detection (S-1-5-32-544) for better reliability on systems where the Server service is disabled.
65-
66- Elevation Flag Handling:
67- - Added /elevated flag to prevent infinite loops and provide clearer error messaging when elevation fails or is cancelled.
68-
69- PowerShell Script Selection:
70- - Added logic to prefer SystemTester_device_grouped.ps1 if available, falling back to SystemTester.ps1.
71-
72- ** New Execution Modes **
73- - Option 2: Classic test sequence
74- - Option 3: Grouped-by-device test sequence (-AutoRunByDevice)
75- - Execution Policy Fix Enhancement
76- - Improved Option 4 to set RemoteSigned for CurrentUser without triggering additional UAC prompts.
77-
78- Help Section Updates:
79- - Clarified troubleshooting steps and added notes on new test modes.
80-
81- General Cleanup
82- - Removed redundant title/color lines, improved messaging consistency, and ensured popd is used on exit to restore working directory.
83-
848---
859
86- # 🔄 Change Log - January 20, 2026
87-
88- ## 📊 Quick Stats
89- - ** Commits Analyzed** : 25
90- - ** Files Modified** : 5
91- - ** New Files** : 4
92- - ** Deleted Files** : 0
93-
94- ## 📝 Detailed Changes
95-
96- ### ✨ New Content
97- - Create generate_changelog.py (` 37de35b ` )
98- - Create .gitkeep (` d6bdaa7 ` )
99- - Create .gitkeep (` 4bbbc52 ` )
100- - Create Troubleshooting.md (` fe7101a ` )
101-
102- ### ♻️ Updates & Refactors
103- - Refactor Test-NetworkLatency function for clarity (#17 ) (` 13ca550 ` )
104- - Update md-link-check.yml (` e325187 ` )
105- - Update md-link-check.yml (` d1d7b6d ` )
106- - Update README.md (` 88ab60e ` )
107- - Update SystemTester.ps1 (#15 ) (` 7095515 ` )
108- - Update SystemTester.ps1 (` 1ff8eef ` )
109- - Update README.md (` 1915609 ` )
110- - Update README.md (` 7211202 ` )
111- - Update README.md (` d85051f ` )
112- - Update TROUBLESHOOTING.md (` b088497 ` )
113- - Update Troubleshooting.md (` b54e6ee ` )
114- - Update TEST_BAT.bat (` edd62f2 ` )
115- - Update SystemTester.ps1 (` c175067 ` )
116- - Update SystemTester.bat (` 4f1ba58 ` )
117- - Update SystemTester.ps1 (` b7df042 ` )
118- - update (` 2f7989f ` )
119- - update (` 5d98fa4 ` )
120- - Update SystemTester.bat (` cc4a1dd ` )
121-
122- ### 🗑️ Removals
123- - Delete Troubleshooting/Troubleshooting.md (` 22b199b ` )
124- - Delete Test.bat (` 6df67c0 ` )
125-
126- ### ⚡ Other Changes
127- - Merge branch 'main' of https://github.com/Pnwcomputers/SystemTester (` 59a7f44 ` )
128-
129- ## 📂 Files Touched
130- <details >
131- <summary >Click to view full file list</summary >
132-
133- - ` .github/workflows/md-link-check.yml `
134- - ` README.md `
135- - ` Reports/.gitkeep `
136- - ` SystemTester.bat `
137- - ` SystemTester.ps1 `
138- - ` Tools/.gitkeep `
139- - ` Troubleshooting/TEST_BAT.bat `
140- - ` docs/TROUBLESHOOTING.md `
141- - ` generate_changelog.py `
142-
143- </details >
14410## [ Unreleased]
11+
14512### Planned
146- - Network deployment options or network log storing
13+ - HTML report export with charts and graphs
14+ - Baseline comparison mode (compare current vs. previous test run)
15+ - Skip flags (` -SkipCPU ` , ` -SkipNetwork ` , etc.) for targeted testing
16+ - CSV export for data analysis
17+ - Memory leak detection module
18+ - Audio device testing
19+ - Intel Arc GPU support
20+ - Network deployment options / centralized log storage
14721- Multi-language support
22+
23+ ---
24+
25+ ## [ 2.4.0] - 2026-04-23
26+
27+ ### Fixed
28+
29+ ** Network — Latency Test**
30+ - ` $targetPort ` was never defined, causing ` Test-NetConnection ` to receive ` Port=0 ` and throw a
31+ validation error on every run — latency test now correctly runs as ICMP-only with no port argument
32+ - ` Test-NetConnection -InformationLevel Detailed ` removed; it requires a valid port and is
33+ unnecessary for basic ping latency measurement
34+ - ` PsPing ` was called with ` IP:Port ` format instead of bare IP for ICMP mode
35+ - ` PsPing ` result regex was too strict — minor whitespace variations in output caused results to be
36+ silently dropped; regex now uses flexible ` \s* ` matching
37+ - Added debug output line showing raw PsPing tail when parsing still fails, making future
38+ diagnosis possible without re-running the test
39+
40+ ** Network — Speed Test**
41+ - Single hardcoded Hetzner HTTPS URL failed under VPN/proxy TLS interception (Mullvad, Tailscale,
42+ corporate proxies) with no fallback — replaced with a 3-URL chain: Cloudflare, Hetzner HTTP, OVH
43+ - Added per-attempt SSL certificate validation bypass to handle MITM interception; bypass is
44+ scoped to the request and restored immediately after each attempt regardless of success or failure
45+ - Added minimum file size check (1000 bytes) to prevent a firewall error page from being recorded
46+ as a successful download result
47+
48+ ** Network — Recommendations**
49+ - Virtual and VPN adapters (VMware VMnet, Hyper-V vEthernet, Tailscale, Mullvad, WireGuard,
50+ TAP-Windows, OpenVPN) were incorrectly flagged as "slow physical NICs" at 100 Mbps
51+ - Recommendation engine now iterates adapter lines individually and excludes known virtual/VPN
52+ adapter name patterns before applying the slow-speed check
53+
54+ ** Reports — Output Location**
55+ - Reports were saving to the script root directory; now saved to a ` Reports\ ` subfolder
56+ - ` Reports\ ` folder is created automatically on first report generation
57+ - Energy report (` powercfg /energy ` ) redirected into ` Reports\ ` alongside text reports
58+ - Write-access test updated to target ` Reports\ ` folder; error messages now include the specific
59+ path that failed
60+
61+ ** Reports — Encoding**
62+ - Report files written as UTF-8 caused Unicode bullets (` • ` ) and arrows (` → ` ) to render as
63+ mojibake (` • â†' ` ) in Notepad and legacy text viewers
64+ - Switched ` Out-File ` encoding from UTF8 to ASCII throughout report generation
65+ - Replaced all Unicode bullet (` • ` ) characters with ` * ` and arrow (` → ` ) characters with ` -> `
66+ - Removed Unicode box-drawing characters (` └─ ` ) from PowerShell menu display strings
67+ - Script file is now fully 7-bit ASCII — no encoding surprises in any editor or viewer
68+
69+ ** Batch Launcher**
70+ - Sysinternals Suite auto-download used a single HTTPS URL with no SSL bypass — same VPN/proxy
71+ TLS interception issue as the PS1 speed test; same fix applied
72+ - ` VERIFY ` section exit-code branching silently swallowed function output, producing misleading
73+ success messages regardless of actual result; simplified to direct output display
74+ - Stale reference to legacy ` SystemTester_FIXED.ps1 ` filename removed from error message
75+ - EXIT screen updated to show correct ` Reports\ ` subfolder path
76+
77+ ---
78+
79+ ## [ 2.21.0] - 2025-09-02
80+
81+ ### Added
82+ - Tool integrity verification with digital signature checking for all Sysinternals executables
83+ - Dual report system: timestamped Clean Summary and Detailed output saved as separate ` .txt ` files
84+ - Batch launcher (` SystemTester.bat ` ) with reliable admin elevation and interactive menu
85+ - GPU Tools Manager — batch menu option 6 for managing NVIDIA, AMD, and GPU-Z testing utilities
86+ - Enhanced GPU testing: multi-GPU support, NVIDIA-SMI integration, AMD driver detection via registry
87+ - DirectX diagnostics via ` dxdiag ` , OpenGL registry check, hardware-accelerated GPU scheduling detection
88+ - Windows Update integration — checks pending updates, lists titles and classifications, reports service status
89+ - WHEA hardware event log scan covering last 7 days
90+ - Network speed and latency testing (initial implementation: ` Test-NetConnection ` , ` PsPing ` )
91+ - Launcher awareness detection — script detects if launched via batch file for context-aware messages
92+ - ` Test-OSHealth ` — runs DISM ` /ScanHealth ` and SFC for OS integrity (admin only)
93+ - ` Test-StorageSMART ` — collects health status and media type from physical disks
94+ - ` Test-Trim ` — checks SSD TRIM enablement status via ` fsutil `
95+ - ` Test-NIC ` — captures active network adapter details including link speed and MAC address
96+ - ` Test-GPU ` — GPU and display configuration with DirectX and OpenGL information
97+ - ` Test-Power ` — battery status and ` powercfg /energy ` report generation (admin only)
98+ - ` Test-HardwareEvents ` — WHEA error log scan
99+ - Support for additional Sysinternals tools: ` sigcheck ` , ` contig ` , ` diskext ` , ` listdlls ` , ` clockres `
100+ - ` -AutoRun ` parameter for unattended full-suite execution with automatic report generation
101+ - Color-coded console output (green/yellow/red) for all test results and recommendations
102+ - Recommendations engine — dynamically generated findings covering memory, CPU, disk, SMART,
103+ TRIM, network, GPU drivers, Windows Update, and WHEA events
104+ - GPU sub-menu options: ` 12a ` (basic info), ` 12b ` (vendor-specific), ` 12c ` (GPU memory)
105+ - GPU-Z download assistant with file size validation in batch launcher
106+
107+ ### Fixed
108+ - Memory usage calculation: ` FreePhysicalMemory ` (reported in KB) was not being converted
109+ correctly, causing inflated usage percentages
110+
111+ ### Changed
112+ - Admin elevation method replaced: ` net session ` check swapped for PowerShell
113+ ` WindowsPrincipal.IsInRole ` with ` FLTMC ` as fallback — more reliable on systems where the
114+ Server service is disabled
115+ - Interactive menu expanded to 18 options
116+ - Report executive summary now includes total tests, success/failure counts, success rate, and duration
117+ - Detailed report output cleaned and limited to first 40 lines per tool to reduce file size
118+
119+ ---
120+
121+ ## [ 2.0.0] - 2024-11-01
122+
123+ ### Added
124+ - Complete rewrite with modular function structure
125+ - Interactive menu system with numbered options
126+ - Recommendations engine (initial version)
127+ - Improved report formatting with section headers
128+
129+ ### Changed
130+ - Monolithic script refactored into discrete test functions
131+ - All WMI calls migrated to CIM instances for better performance and PowerShell 7 compatibility
132+
133+ ---
134+
135+ ## [ 1.0.0] - 2024-01-01
136+
137+ ### Added
138+ - Initial release
139+ - Core Sysinternals tool runner: ` psinfo ` , ` coreinfo ` , ` pslist ` , ` handle ` , ` clockres ` , ` autorunsc ` , ` du `
140+ - Basic system information collection (OS, CPU, RAM, storage)
141+ - Single text report output
142+ - Manual Sysinternals installation required
0 commit comments