VMware vSphere As Built Report is a PowerShell module which works in conjunction with AsBuiltReport.Core.
AsBuiltReport is an open-sourced community project which utilises PowerShell to produce as-built documentation in multiple document formats for multiple vendors and technologies.
The VMware vSphere As Built Report module is used to generate as built documentation for VMware vSphere / vCenter Server environments.
Please refer to the VMware ESXi AsBuiltReport for reporting of standalone VMware ESXi servers.
Please refer to the AsBuiltReport website for more detailed information about this project.
Sample vSphere As Built report with health checks, using default report style.
Sample vSphere As Built report with health checks, using custom report style.
Below are the instructions on how to install, configure and generate a VMware vSphere As Built report.
The VMware vSphere As Built Report supports the following vSphere versions;
The following VMware vSphere versions are no longer being tested and/or supported;
This report is compatible with the following PowerShell versions;
Windows PowerShell 5.1 | PowerShell 7 ^ |
---|---|
:white_check_mark: | :white_check_mark: |
^ Due to compatibility issues, VMware Update Manager information will not be reported when using PowerShell 7
PowerShell 5.1 or PowerShell 7, and the following PowerShell modules are required for generating a VMware vSphere As Built report.
Each of these modules can be easily downloaded and installed via the PowerShell Gallery
❗ If you are unable to install .NET Core, you must set ShowCoverPageImage
to False
in the report JSON configuration file.
A VMware vSphere As Built Report can be generated with read-only privileges, however the following sections will be skipped;
For a complete report, the following role assigned privileges are required;
Open a PowerShell terminal window and install each of the required modules.
:warning: VMware PowerCLI 12.3 or higher is required. Please ensure older PowerCLI versions have been uninstalled.
install-module VMware.PowerCLI -MinimumVersion 12.3 -AllowClobber
install-module AsBuiltReport.VMware.vSphere
The vSphere As Built Report utilises a JSON file to allow configuration of report information, options, detail and healthchecks.
A vSphere report configuration file can be generated by executing the following command;
New-AsBuiltReportConfig -Report VMware.vSphere -FolderPath <User specified folder> -Filename <Optional>
Executing this command will copy the default vSphere report JSON configuration to a user specified folder.
All report settings can then be configured via the JSON file.
The following provides information of how to configure each schema within the report's JSON file.
The Report schema provides configuration of the vSphere report information.
Sub-Schema | Setting | Default | Description |
---|---|---|---|
Name | User defined | VMware vSphere As Built Report | The name of the As Built Report |
Version | User defined | 1.0 | The report version |
Status | User defined | Released | The report release status |
ShowCoverPageImage | true / false | true | Toggle to enable/disable the display of the cover page image |
ShowTableOfContents | true / false | true | Toggle to enable/disable table of contents |
ShowHeaderFooter | true / false | true | Toggle to enable/disable document headers & footers |
ShowTableCaptions | true / false | true | Toggle to enable/disable table captions/numbering |
The Options schema allows certain options within the report to be toggled on or off.
Sub-Schema | Setting | Default | Description |
---|---|---|---|
ShowLicenseKeys | true / false | false | Toggle to mask/unmask vSphere license keys Masked License Key *****-*****-*****-56YDM-AS12K Unmasked License Key AKLU4-PFG8M-W2D8J-56YDM-AS12K |
ShowVMSnapshots | true / false | true | Toggle to enable/disable reporting of VM snapshots |
The InfoLevel schema allows configuration of each section of the report at a granular level. The following sections can be set.
There are 6 levels (0-5) of detail granularity for each section as follows;
Setting | InfoLevel | Description |
---|---|---|
0 | Disabled | Does not collect or display any information |
1 | Enabled / Summary | Provides summarised information for a collection of objects |
2 | Adv Summary | Provides condensed, detailed information for a collection of objects |
3 | Detailed | Provides detailed information for individual objects |
4 | Adv Detailed | Provides detailed information for individual objects, as well as information for associated objects (Hosts, Clusters, Datastores, VMs etc) |
5 | Comprehensive | Provides comprehensive information for individual objects, such as advanced configuration settings |
The table below outlines the default and maximum InfoLevel settings for each section.
Sub-Schema | Default Setting | Maximum Setting |
---|---|---|
vCenter | 3 | 5 |
Cluster | 3 | 4 |
ResourcePool | 3 | 4 |
VMHost | 3 | 5 |
Network | 3 | 4 |
vSAN | 3 | 4 |
Datastore | 3 | 4 |
DSCluster | 3 | 4 |
VM | 2 | 4 |
VUM | 3 | 5 |
The Healthcheck schema is used to toggle health checks on or off.
The vCenter schema is used to configure health checks for vCenter Server.
Sub-Schema | Setting | Default | Description | Highlight |
---|---|---|---|---|
true / false | true | Highlights mail settings which are not configured | Not Configured | |
Licensing | true / false | true | Highlights product evaluation licenses | Product evaluation license in use |
Alarms | true / false | true | Highlights vCenter Server alarms which are disabled | Alarm disabled |
The Cluster schema is used to configure health checks for vSphere Clusters.
Sub-Schema | Setting | Default | Description | Highlight |
---|---|---|---|---|
HAEnabled | true / false | true | Highlights vSphere Clusters which do not have vSphere HA enabled | vSphere HA disabled |
HAAdmissionControl | true / false | true | Highlights vSphere Clusters which do not have vSphere HA Admission Control enabled | vSphere HA Admission Control disabled |
HostFailureResponse | true / false | true | Highlights vSphere Clusters which have vSphere HA Failure Response set to disabled | vSphere HA Host Failure Response disabled |
HostMonitoring | true / false | true | Highlights vSphere Clusters which do not have vSphere HA Host Monitoring enabled | vSphere HA Host Monitoring disabled |
DatastoreOnPDL | true / false | true | Highlights vSphere Clusters which do not have Datastore on PDL enabled | vSphere HA Datastore on PDL disabled |
DatastoreOnAPD | true / false | true | Highlights vSphere Clusters which do not have Datastore on APD enabled | vSphere HA Datastore on APD disabled |
APDTimeOut | true / false | true | Highlights vSphere Clusters which do not have APDTimeOut enabled | APDTimeOut disabled |
vmMonitoing | true / false | true | Highlights vSphere Clusters which do not have VM Monitoting enabled | VM Monitoring disabled |
DRSEnabled | true / false | true | Highlights vSphere Clusters which do not have vSphere DRS enabled | vSphere DRS disabled |
DRSAutomationLevelFullyAuto | true / false | true | Checks the vSphere DRS Automation Level is set to 'Fully Automated' | vSphere DRS Automation Level not set to 'Fully Automated' |
PredictiveDRS | true / false | false | Highlights vSphere Clusters which do not have Predictive DRS enabled | Predictive DRS disabled |
DRSVMHostRules | true / false | true | Highlights DRS VMHost rules which are disabled | DRS VMHost rule disabled |
DRSRules | true / false | true | Highlights DRS rules which are disabled | DRS rule disabled |
vSANEnabled | true / false | true | Highlights vSphere Clusters which do not have Virtual SAN enabled | Virtual SAN disabled |
EVCEnabled | true / false | true | Highlights vSphere Clusters which do not have Enhanced vMotion Compatibility (EVC) enabled | vSphere EVC disabled |
VUMCompliance | true / false | true | Highlights vSphere Clusters which do not comply with VMware Update Manager baselines | Unknown Not Compliant |
The VMHost schema is used to configure health checks for VMHosts.
Sub-Schema | Setting | Default | Description | Highlight |
---|---|---|---|---|
ConnectionState | true / false | true | Highlights VMHosts which are in maintenance mode or disconnected | Maintenance Disconnected |
HyperThreading | true / false | true | Highlights VMHosts which have HyperThreading disabled | HyperThreading disabled |
ScratchLocation | true / false | true | Highlights VMHosts which are configured with the default scratch location | Scratch location is /tmp/scratch |
IPv6 | true / false | true | Highlights VMHosts which do not have IPv6 enabled | IPv6 disabled |
UpTimeDays | true / false | true | Highlights VMHosts with uptime days greater than 9 months | 9 - 12 months >12 months |
Licensing | true / false | true | Highlights VMHosts which are using production evaluation licenses | Product evaluation license in use |
SSH | true / false | true | Highlights if the SSH service is enabled | TSM / TSM-SSH service enabled |
ESXiShell | true / false | true | Highlights if the ESXi Shell service is enabled | TSM / TSM-EsxiShell service enabled |
NTP | true / false | true | Highlights if the NTP service has stopped or is disabled on a VMHost | NTP service stopped / disabled |
StorageAdapter | true / false | true | Highlights storage adapters which are not 'Online' | Storage adapter status is 'Unknown' Storage adapter status is 'Offline' |
NetworkAdapter | true / false | true | Highlights physical network adapters which are not 'Connected' Highlights physical network adapters which are 'Down' |
Network adapter is 'Disconnected' Network adapter is 'Down' |
LockdownMode | true / false | true | Highlights VMHosts which do not have Lockdown mode enabled | Lockdown Mode disabled |
VUMCompliance | true / false | true | Highlights VMHosts which are not compliant with VMware Update Manager software packages | Unknown Incompatible |
The vSAN schema is used to configure health checks for vSAN.
Schema | Sub-Schema | Setting | Default | Description | Highlight |
---|
The Datastore schema is used to configure health checks for Datastores.
Sub-Schema | Setting | Default | Description | Highlight |
---|---|---|---|---|
CapacityUtilization | true / false | true | Highlights datastores with storage capacity utilization over 75% | 75 - 90% utilized >90% utilized |
The DSCluster schema is used to configure health checks for Datastore Clusters.
Sub-Schema | Setting | Default | Description | Highlight |
---|---|---|---|---|
CapacityUtilization | true / false | true | Highlights datastore clusters with storage capacity utilization over 75% | 75 - 90% utilized >90% utilized |
SDRSAutomationLevelFullyAuto | true / false | true | Highlights if the Datastore Cluster SDRS Automation Level is not set to 'Fully Automated' | Storage DRS Automation Level not set to 'Fully Automated' |
The VM schema is used to configure health checks for virtual machines.
Sub-Schema | Setting | Default | Description | Highlight |
---|---|---|---|---|
PowerState | true / false | true | Highlights VMs which are powered off | VM is powered off |
ConnectionState | true / false | true | Highlights VMs which are orphaned or inaccessible | VM is orphaned or inaccessible |
CpuHotAdd | true / false | true | Highlights virtual machines which have CPU Hot Add enabled | CPU Hot Add enabled |
CpuHotRemove | true / false | true | Highlights virtual machines which have CPU Hot Remove enabled | CPU Hot Remove enabled |
MemoryHotAdd | true / false | true | Highlights VMs which have Memory Hot Add enabled | Memory Hot Add enabled |
ChangeBlockTracking | true / false | true | Highlights VMs which do not have Change Block Tracking enabled | Change Block Tracking disabled |
SpbmPolicyCompliance | true / false | true | Highlights VMs which do not comply with storage based policies | VM storage based policy compliance is unknown VM does not comply with storage based policies |
VMToolsStatus | true / false | true | Highlights Virtual Machines which do not have VM Tools installed, are out of date or are not running | VM Tools not installed, out of date or not running |
VMSnapshots | true / false | true | Highlights Virtual Machines which have snapshots older than 7 days | VM Snapshot age >= 7 days VM Snapshot age >= 14 days |
# Generate a vSphere As Built Report for vCenter Server 'vcenter-01.corp.local' using specified credentials. Export report to HTML & DOCX formats. Use default report style. Append timestamp to report filename. Save reports to 'C:\Users\Tim\Documents'
PS C:\> New-AsBuiltReport -Report VMware.vSphere -Target 'vcenter-01.corp.local' -Username 'administrator@vsphere.local' -Password 'VMware1!' -Format Html,Word -OutputFolderPath 'C:\Users\Tim\Documents' -Timestamp
# Generate a vSphere As Built Report for vCenter Server 'vcenter-01.corp.local' using specified credentials and report configuration file. Export report to Text, HTML & DOCX formats. Use default report style. Save reports to 'C:\Users\Tim\Documents'. Display verbose messages to the console.
PS C:\> New-AsBuiltReport -Report VMware.vSphere -Target 'vcenter-01.corp.local' -Username 'administrator@vsphere.local' -Password 'VMware1!' -Format Text,Html,Word -OutputFolderPath 'C:\Users\Tim\Documents' -ReportConfigFilePath 'C:\Users\Tim\AsBuiltReport\AsBuiltReport.VMware.vSphere.json' -Verbose
# Generate a vSphere As Built Report for vCenter Server 'vcenter-01.corp.local' using stored credentials. Export report to HTML & Text formats. Use default report style. Highlight environment issues within the report. Save reports to 'C:\Users\Tim\Documents'.
PS C:\> $Creds = Get-Credential
PS C:\> New-AsBuiltReport -Report VMware.vSphere -Target 'vcenter-01.corp.local' -Credential $Creds -Format Html,Text -OutputFolderPath 'C:\Users\Tim\Documents' -EnableHealthCheck
# Generate a single vSphere As Built Report for vCenter Servers 'vcenter-01.corp.local' and 'vcenter-02.corp.local' using specified credentials. Report exports to WORD format by default. Apply custom style to the report. Reports are saved to the user profile folder by default.
PS C:\> New-AsBuiltReport -Report VMware.vSphere -Target 'vcenter-01.corp.local','vcenter-02.corp.local' -Username 'administrator@vsphere.local' -Password 'VMware1!' -StyleFilePath 'C:\Scripts\Styles\MyCustomStyle.ps1'
# Generate a vSphere As Built Report for vCenter Server 'vcenter-01.corp.local' using specified credentials. Export report to HTML & DOCX formats. Use default report style. Reports are saved to the user profile folder by default. Attach and send reports via e-mail.
PS C:\> New-AsBuiltReport -Report VMware.vSphere -Target 'vcenter-01.corp.local' -Username 'administrator@vsphere.local' -Password 'VMware1!' -Format Html,Word -OutputFolderPath 'C:\Users\Tim\Documents' -SendEmail