PowerShell module that produces infrastructure documentation of VMware vSphere environments in CSV or Excel format.
Maintained fork of arielsanchezmora/vDocumentation by Ariel Sanchez and Edgar Sanchez (last updated Oct 2019, v2.4.7). This fork modernizes the module for PowerShell 7+, PowerCLI 13.x, and vSphere 8.
| Requirement | Version |
|---|---|
| PowerShell | 7.0+ |
| VMware PowerCLI | 13.0+ |
| ImportExcel (optional) | 3.0+ |
| vSphere / vCenter | 6.5+ (8.0+ for DPU features) |
# Install dependencies
Install-Module -Name VMware.PowerCLI -Scope CurrentUser
Install-Module -Name ImportExcel -Scope CurrentUser # Optional, for Excel export
# Install vDocumentation
Install-Module -Name vDocumentation -Scope CurrentUserTo verify installation:
Get-Module vDocumentation -ListAvailable | Format-List# Connect to vCenter
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false
Connect-VIServer vcenter.lab.local
# Document entire environment
Get-ESXInventory -ExportExcel
# Document specific cluster
Get-ESXNetworking -Cluster production -ExportExcel -folderPath /tmp/docs
# Document single host
Get-ESXStorage -VMhost esxi01.lab.local -ExportCSV| Command | Description |
|---|---|
| Get-ESXInventory | Host hardware inventory and configuration (BIOS, CPU, RAM, licensing, NTP, SSH) |
| Get-ESXIODevice | PCI/IO devices — HBAs, NICs, graphics — including VMware HCL compatibility |
| Get-ESXNetworking | Network config — physical adapters, VMkernel, vSwitches, CDP/LLDP |
| Get-ESXStorage | Storage config — iSCSI, Fibre Channel HBAs, datastores, multipathing |
| Get-ESXPatching | Patch compliance — VUM baselines or vLCM image-based (-LifecycleManager) |
| Get-vSANInfo | vSAN cluster — ESA/OSA detection, type, disk groups, capacity, dedup, policies |
| Get-ESXSpeculativeExecution | Spectre/Meltdown mitigation status — BIOS, MCU, host compliance |
| Get-VMSpeculativeExecution | VM-level Spectre mitigation — pipeline-enabled (Get-VM | Get-VMSpeculativeExecution) |
| Get-ESXDPUInventory | NEW DPU/SmartNIC inventory — vendor, model, firmware, offload status (vSphere 8+) |
| Scope | Parameter | Description |
|---|---|---|
| Target | -VMhost |
Specific ESXi host(s), comma-separated |
| Target | -Cluster |
Specific cluster(s), comma-separated |
| Target | -Datacenter |
Specific datacenter(s), comma-separated |
| Output | -ExportCSV |
Export to CSV file |
| Output | -ExportExcel |
Export to Excel file (requires ImportExcel module) |
| Output | -PassThru |
Return objects to pipeline |
| Output | -folderPath |
Custom output directory |
Each command also has specific switches for individual data tabs. Use Get-Help <command> -Full for details.
- PowerShell 7+ and PowerCLI 13.x support
- vSphere 8: DPU/SmartNIC inventory, vSAN ESA detection, vSphere Lifecycle Manager
- Cross-platform: Windows, macOS, Linux
- Bug fixes: vSAN cluster type detection, HBA firmware, path separators, variable typos
- Code quality: 6 shared helper functions, ~1000 lines of duplicated code eliminated
- CI/CD: Pester tests, PSScriptAnalyzer, GitHub Actions
See CHANGELOG.md for full details.
powershell/vDocumentation/
Public/ # 9 exported cmdlet functions
Private/ # 6 shared helper functions
vDocumentation.psd1 # Module manifest
vDocumentation.psm1 # Module loader
tests/ # Pester 5 test suite
.github/workflows/ # CI/CD pipeline
Contributions are welcome. Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Write Pester tests for new functionality
- Ensure
Invoke-ScriptAnalyzerpasses - Submit a pull request
Original Authors:
- Ariel Sanchez (@arielsanchezmor)
- Edgar Sanchez (@edmsanchez13)
Original Contributors: Graham Barker (vSAN), Michael White, Justin Sider, @pdpelsem, and others.
Maintained by: Canberk Kilicarslan (@canberkys)
Originally presented at VMworld 2017 (session SER2077BU): YouTube
MIT License - (c) 2017-2026 Ariel Sanchez, Edgar Sanchez, and Contributors.