SysHawk is a comprehensive PowerShell-based system diagnostic tool designed for Windows system administrators. It provides a complete point-in-time snapshot of system health, network configuration, security posture, and performance metrics in an easy-to-read, color-coded format.
- Real-time disk usage for all drives
- Visual progress bars with color-coded warnings
- Critical space alerts (< 10% free)
- Capacity and utilization reporting
- Physical memory usage with visual indicators
- Available memory reporting
- Top memory consuming processes
- Performance threshold monitoring
- Active network adapter configuration
- IP addresses, subnets, and CIDR notation
- Default gateway and DNS server information
- DHCP vs. static configuration detection
- Internet and DNS connectivity testing
- Link speed reporting with proper unit conversion
- Windows Defender real-time protection status
- Firewall status across all profiles (Domain/Private/Public)
- Recent security event analysis
- Last antivirus scan information
- Domain membership status and role
- Current user context and permissions
- Domain controller connectivity testing
- Computer account health verification
- Critical Windows service monitoring
- Service status reporting with color coding
- Total running/stopped service counts
- Startup type information
- System uptime tracking
- OS version and build information
- Pending reboot detection with reasons
- Windows Update status indicators
- Recent system and application errors (24-hour window)
- Event correlation and pattern recognition
- Top error sources identification
- Security event analysis
- Overall system health score (0-100%)
- Component status grid with visual indicators
- Critical alert prioritization
- Issue summary with recommended actions
- Operating System: Windows 10/11, Windows Server 2016+
- PowerShell: Version 5.1 or higher
- Permissions: Local Administrator rights recommended for full functionality
- Network: Internet connectivity for external connectivity tests
-
Download the script:
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/Coach40oz/SysHawk/main/SysHawk.ps1" -OutFile "SysHawk.ps1"
-
Set execution policy (if needed):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
-
Run the script:
.\SysHawk.ps1
.\SysHawk.ps1Performs a comprehensive system scan with full event log analysis.
.\SysHawk.ps1 -QuickScanFaster execution with reduced event log analysis scope.
.\SysHawk.ps1 -ExportJsonSaves scan results to a timestamped JSON file for integration with external tools.
.\SysHawk.ps1 -QuickScan -ExportJsonQuick scan with JSON export for automated monitoring workflows.
π ββββββ System Health Dashboard ββββββ
ββ Overall System Health #################### 87%
ββ Component Status:
| [+] Disk Space [+] Memory [+] Network
| [+] Security [+] Services [!] Updates
ββ Issues requiring attention:
| β’ Pending reboot required
π ββββββ Network Intelligence ββββββ
ββ Scanning network adapters...
ββ [+] Ethernet: 192.168.1.100 (1000 Mbps)
ββ [-] ββ Subnet Mask: /24
ββ [-] ββ Default Gateway: 192.168.1.1
ββ [-] ββ DNS Servers: 8.8.8.8, 8.8.4.4
ββ [-] ββ DHCP: Enabled
ββ Testing connectivity...
ββ [+] DNS Connectivity: Online
ββ [+] Internet Access: Online
π¨ ββββββ CRITICAL ALERTS ββββββ
ββ [!] CRITICAL: Drive C: only 8.3% free!
ββ [!] WARNING: System requires reboot (Windows Update)
{
"Disks": [
{
"Drive": "C:",
"TotalGB": 465.75,
"UsedGB": 427.13,
"FreeGB": 38.62,
"PercentFree": 8.3,
"Status": "ERROR"
}
],
"Memory": {
"TotalGB": 15.87,
"UsedGB": 9.45,
"FreeGB": 6.42,
"PercentUsed": 59.5,
"Status": "OK"
}
}Scheduled Task Integration:
# Create daily health check
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\SysHawk.ps1 -ExportJson"
$Trigger = New-ScheduledTaskTrigger -Daily -At "08:00"
Register-ScheduledTask -TaskName "SysHawk-DailyHealthCheck" -Action $Action -Trigger $TriggerSIEM Integration:
# Export and send to log collector
.\SysHawk.ps1 -ExportJson
$jsonData = Get-Content "SysHawk_$(hostname)_$(Get-Date -Format 'yyyyMMdd_HHmmss').json"
# Send to your SIEM/log management systemEdit the script to adjust warning thresholds:
# Disk space warnings
$status = if ($percentFree -lt 10) { "ERROR" } elseif ($percentFree -lt 20) { "WARNING" } else { "OK" }
# Memory usage warnings
$status = if ($percentUsed -gt 90) { "ERROR" } elseif ($percentUsed -gt 80) { "WARNING" } else { "OK" }Modify the $criticalServices array to monitor additional services:
$criticalServices = @(
"Spooler", "BITS", "Themes", "AudioSrv", "Dhcp", "Dnscache",
"EventLog", "PlugPlay", "RpcSs", "Schedule", "Winmgmt",
"YourCustomService" # Add your services here
)Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Follow PowerShell best practices and conventions
- Maintain compatibility with PowerShell 5.1+
- Include appropriate error handling
- Update documentation for new features
- Test on multiple Windows versions
Please include the following information when reporting issues:
- Windows version and PowerShell version
- Full error message and stack trace
- Steps to reproduce the issue
- Expected vs. actual behavior
This project is licensed under the MIT License - see the LICENSE section below for details.
MIT License
Copyright (c) 2025 Ulises Paiz
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Ulises Paiz
- LinkedIn: https://www.linkedin.com/in/ulises-paiz/
- Version: 1.4
- v1.4 - Enhanced network intelligence, improved error handling, ASCII compatibility mode
- v1.3 - Added health dashboard, critical alerts, progress bars
- v1.2 - Implemented JSON export, quick scan mode
- v1.1 - Added Active Directory intelligence, service monitoring
- v1.0 - Initial release with core system monitoring capabilities
For support, questions, or feature requests:
- Check the Issues section for existing solutions
- Create a new issue with detailed information
- Connect with the author on LinkedIn for professional inquiries
β If you find SysHawk useful, please consider giving it a star on GitHub!
Happy hunting! π―