π Comprehensive assessment tool for ESXi host upgrade readiness with detailed reporting and recommendations!
ποΈ Comprehensive Analysis
- CPU compatibility verification
- Storage capacity assessment
- Upgrade path determination
- System readiness evaluation
π Advanced Reporting
- Interactive HTML reporting with filtering
- Detailed CSV export for data analysis
- Clear status categorization
- Actionable upgrade recommendations
π Efficient Processing
- Parallel host processing
- Configurable concurrency
- Progress tracking
- Detailed logging and error handling
π‘οΈ Version Intelligence
- Precise version and build tracking
- Target version specification
- Upgrade path validation
- Already up-to-date detection
Before you begin your upgrade assessment, ensure you have:
- π» PowerShell 7 or higher
- π VMware PowerCLI module installed
- π ESXi host credentials with administrative access
- π (Optional) CSV file with host inventory
Click to expand PowerCLI setup instructions
# Install PowerShell 7+ via winget
winget install Microsoft.PowerShell# Install VMware PowerCLI module if not already installed
Install-Module -Name VMware.PowerCLI -Scope CurrentUser -Force# Set PowerCLI configuration
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false -Confirm:$falseCreate a config.json file in the same directory as the script:
Click to see full config.json template
{
"Username": "administrator@vsphere.local",
"Password": "YourSecurePassword",
"TargetESXiVersion": "8.0.3",
"MinimumRequiredSpaceGB": 10,
"MinimumBootbankFreePercentage": 90
}# Check specific servers
.\ESXi-Upgrade-ReadinessCheck.ps1 -Servers "esxi01.domain.com","esxi02.domain.com"
# Check servers from CSV file with parallel processing
.\ESXi-Upgrade-ReadinessCheck.ps1 -ServerListFile "servers.csv" -Parallel -MaxConcurrentJobs 10# Show help and parameter information
.\ESXi-Upgrade-ReadinessCheck.ps1 -Help
# Check specific ESXi hosts
.\ESXi-Upgrade-ReadinessCheck.ps1 -Servers "esxi01.domain.com","esxi02.domain.com"
# Process hosts from a CSV file
.\ESXi-Upgrade-ReadinessCheck.ps1 -ServerListFile "servers.csv"
# Specify output locations for CSV and HTML report
.\ESXi-Upgrade-ReadinessCheck.ps1 -Servers "esxi01.domain.com" -OutputCsv "results.csv" -ReportPath "report.html"
# Process multiple hosts in parallel with custom concurrency
.\ESXi-Upgrade-ReadinessCheck.ps1 -ServerListFile "servers.csv" -Parallel -MaxConcurrentJobs 10
# Specify target ESXi version to check compatibility against
.\ESXi-Upgrade-ReadinessCheck.ps1 -ServerListFile "servers.csv" -UpgradeVersion "8.0.3"
# Filter servers by name match (e.g., only include hosts with "ESX" in their name)
.\ESXi-Upgrade-ReadinessCheck.ps1 -ServerListFile "servers.csv" -NameMatch "ESX"
# Combine filters, parallelism, and output control
.\ESXi-Upgrade-ReadinessCheck.ps1 -ServerListFile "servers.csv" -NameMatch "CHQ" -Parallel -MaxConcurrentJobs 8 -OutputCsv "filtered-results.csv" -ReportPath "filtered-report.html"The script produces two main outputs:
- Filterable host list
- Status categorization
- Detailed host information
- Visual status indicators
- Upgrade recommendations
- Complete assessment data
- Sortable and filterable in Excel
- Perfect for inventory management
- Integration with other systems
Hosts are categorized for easy assessment:
- β Ready for Upgrade: Meets all requirements
- π Already Up-To-Date: Running target version
- β CPU Incompatible: CPU not supported
β οΈ Storage Issues: Insufficient space- π Requires Intermediate Upgrade: Multi-step upgrade needed
- β Multiple Issues: Multiple requirements not met
β οΈ Failed to Check: Connection or assessment error
π Connection Issues
- β Verify hostname/IP is correct
- β Check network connectivity
- β Verify credentials
- β Ensure ESXi host is online
- β Check firewall rules
π Performance Issues
- β Reduce MaxConcurrentJobs
- β Check host resource utilization
- β Process smaller batches of hosts
π CSV Import Issues
- β Verify CSV format
- β Ensure "Host Name" column exists
- β Check for valid ESXi hostnames
- π Store credentials securely
- π Use least-privilege accounts
- π Review logs regularly
- π Don't hardcode credentials in script
This project is made available under the MIT License.
Have questions or feedback? Found a bug? Please open an issue in the repository.
Made with β€οΈ for VMware administrators
β Star this repository if you find it helpful! β
