All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] - Unreleased
- Fix PCI Drivers & Firmware section not reporting on vSphere 8;
VMkernelNameis no longer populated inesxcli hardware.pci.liston ESXi 8.x so a PCI address to VMkernel name map is now built via the PowerCLI API as fallback. Also fixes per-device defaults not being reset between loop iterations (#105, #111, #127) - Fix vCenter Server Certificate section reporting VMCA template defaults instead of the actual deployed TLS certificate; now reads the live certificate directly from port 443 (#88)
- Fix null disk group crash in OSA vSAN clusters where disk groups have not yet been claimed (#113)
Fix- Issues still evident. Still working on this fix.An item with the same key has already been added. Key: LinkedViewerror when generating TEXT format reports; raw VMOMI/PowerCLI objects stored directly as PSCustomObject property values cause PScribo's serializer to encounter duplicateLinkedViewmembers — all affected properties now store string primitives instead (#130)- Fix "Index operation failed; the array index evaluated to null" crash and
Global.Licensesprivilege errors when querying ESXi host/vCenter licensing on vCenter 8.0.2 (#123)
- Modular architecture: each report section is now a dedicated private function (
Get-AbrVSphere*) - Internationalization (i18n) support via
Language/.psd1files (en-US,en-GB,es-ES,fr-FR,de-DE) - Pester test suite (
AsBuiltReport.VMware.vSphere.Tests.ps1,LocalizationData.Tests.ps1,Invoke-Tests.ps1) - GitHub Actions Pester workflow (
.github/workflows/Pester.yml) - Add TPM attestation state and host encryption settings to VMHost Security section; includes recovery key reporting (gated behind
ShowEncryptionKeysoption) andTpmAttestationhealthcheck (#101) - Add I/O Device Identifiers subsection to VMHost Hardware report, displaying VID/DID/SVID/SSID in lowercase hex for HCL validation (#126)
- Add vSphere Lifecycle Manager (vLCM) cluster reporting: image composition (base image, vendor add-on), component list (InfoLevel 4+), hardware support manager, and image compliance with per-host breakdown (InfoLevel 4+); clusters in VUM baseline mode are silently skipped
- Add Software Depots section to VMware Update Manager report; online depots show description, URL, system-defined flag, and enabled state; offline depots show description and location; system-generated bundles (HA, WCP) with no location are excluded from the offline table
- Add VM Update Manager baseline compliance reporting per VM, with
VUMCompliancehealthcheck (Warning: Unknown, Critical: Not Compliant / Incompatible) - Add
LCMCompliancehealthcheck for cluster/host vLCM image compliance - Add SDRS rules reporting to Datastore Cluster section; shows rule name, enabled state, type (Affinity / Anti-Affinity), and member VMs
- Add Space Load Balance Configuration and I/O Load Balance Configuration subsections to Datastore Cluster section
- Add Distributed Switch LACP reporting (enabled state, mode) at InfoLevel 3+
- Add Distributed Switch NetFlow reporting (collector IP/port, flow timeouts, sampling rate) at InfoLevel 3+
- Add Network I/O Control resource pool reporting (shares level, shares, limit) at InfoLevel 4+ when NIOC is enabled
- Add Proactive HA Providers subsection to Cluster Proactive HA section
- Add VM Swap File Location subsection to VMHost System section; shows placement policy and local swap datastore
- Add ESXi host certificate reporting to VMHost System section; shows subject, issuer, validity period, and SHA-256 thumbprint
- Add syslog log directory, rotation count, and log size to VMHost Syslog section; section now always renders regardless of whether a remote syslog server is configured
- Add vSAN Services section to vSAN cluster reporting (both OSA and ESA); shows enabled/disabled state of Performance Service, File Service, iSCSI Target Service, Deduplication, Encryption, Historical Health Service, and Health Check
- Add tag reporting to Datastore, Datastore Cluster, Distributed Switch, Resource Pool, Virtual Machine, and VMHost sections
- Extract Cluster VUM Baselines and Compliance into dedicated
Get-AbrVSphereClusterVUMsub-function - Add vCenter Server Backup Settings section (InfoLevel 3+); Backup Schedule table shows status (Activated/Deactivated), schedule recurrence with appliance timezone, backup location, data components, and retention count; Backup Job History table shows the 10 most recent jobs (location, type, status, data transferred, duration, end time) via
GET /api/appliance/recovery/backup/job/details; requires vSphere 7.0+ REST API; includesBackuphealthcheck (Warning: schedule deactivated, Critical: job failed) - Add
Certificatehealthcheck to vCenter Server Certificate section (Critical: EXPIRED/EXPIRING, Warning: EXPIRING_SOON) - Add Content Libraries section to vCenter Server report (InfoLevel 3+); summary table shows library name, type, backing datastore, item count, and description; InfoLevel 4+ adds per-library detail (including subscription URL, automatic and on-demand sync settings for subscribed libraries) and a flat items table showing name, content type, size, description, creation time, and last modified; includes
ContentLibraryhealthcheck (Warning: automatic synchronisation disabled) - Add
ShowRolesandShowAlarmsoptions to suppress vCenter Server Roles and Alarm Definitions sections; both default totrue; useful for reducing report size in large environments (#122) - Add
ShowTagsoption to gate all tag reporting across the report (vCenter Tags, Categories, Assignments, VMHost, VM, Datastore, Datastore Cluster, Resource Pool, Distributed Switch); defaults totrue - Add vCenter Server resource and inventory summary tables at InfoLevel 1+; resource table shows CPU (GHz), Memory (GB/TB), and Storage (GB/TB/PB) with free/used/total columns (auto-scaled to most relevant unit); separate Virtual Machine table shows Powered On/Off/Suspended/Total counts; separate Host table shows Connected/Disconnected/Maintenance/Total counts (#30)
- Complete module rewrite for improved maintainability and extensibility
- Module source now uses nested folder structure (
AsBuiltReport.VMware.vSphere/) - Requires
AsBuiltReport.Core>= 1.6.2 - Minimum PowerShell version raised to 7.4; refer to the VMware PowerCLI Installation Guide
CompatiblePSEditionsupdated toCoreonly
- Windows PowerShell 5.1 (Desktop edition) support dropped
[1.3.6.1] - 2025-08-24
- Fix issue with gathering ESXi Host Image Profile information
[1.3.6] - 2025-08-24
- Fix divide by zero error (@rebelinux) (#129)
- Fix PowerCLI module dependency (#134)
- Update colour placeholders in
README.md
- Improve vSAN Capacity reporting and healthchecks
- Add
VCF.PowerCLItoExternalModuleDependenciesin the module manifest
- Remove
Get-RequiredModulefunction to check for PowerCLI versions - Remove VMware document style script
[1.3.5] - 2025-02-27
- Add Free resource capacity reporting to VMhost hardware section
- Update VMware PowerCLI requirements to version 13.3
- Improve error reporting for vSAN section
- Improve data size reporting. Data sizes are now displayed in more appropriately sized data units
- Change list tables to 40/60 column widths
- Change datastore capacity reporting to include percentage used & free values
- Update GitHub release workflow to add post to Bluesky social platform
- Fix issue with license reporting (#128)
- Fix issue with vCenter user privileges not handling groups (@nathcoad) (#102)
- Fix time & date outputs showing incorrect date format
- Fix VMware Update Manager reporting with PowerShell 7
[1.3.4] - 2024-02-28
- Add vSAN ESA support (#113)
- Update VMware PowerCLI requirements to version 13.2 (#107)
- Improve bug and feature request templates (@rebelinux)
- Improve TOC structure
- Update VMware style script for improved TOC structure
- Update GitHub action workflows
- Update VMHost PCI Devices reporting to fix issues with ESXi 8.x hosts (@orb71) (#105) & (#111)
- Add Try/Catch to PCI Drivers and Firmware section to provide a workaround for ESXi 8.x hosts (#116)
- Update vCenter Server alarms reporting (#106)
- Fix issue with Platform Services Controller reporting (#103)
- Fix NSX-T virtual switch network labels (#118)
- Remove reporting of vCenter Server OS type
[1.3.3.1] - 2022-04-21
- Add VMHost IPMI / BMC configuration information
- Fix GitHub Action release workflow
[1.3.2] - 2022-03-24
- Automated tweet release workflow
- Fix colour placeholders in
README.md
[1.3.1] - 2021-09-03
- VMHost network adapter LLDP reporting
[1.3.0] - 2021-08-29
- PowerShell 7 compatibility
- PSScriptAnalyzer & PublishPSModule GitHub Action workflows
- Advanced detailed reporting for VI roles
- Advanced detailed reporting for vSAN disks
- Support for VMware Cloud environments (VCF, VMC, AVS, GVE) (#87)
- NSX TCP/IP stacks for VMkernel Adapter reporting
- Include release and issue links in
CHANGELOG.md
- Incorrect section reporting with certain InfoLevels
- Datastore table now sorts by Datastore Name
- vSAN advanced detailed reporting
- Distributed vSwitch advanced detailed reporting
- Display issues with highlights in
README.md
[1.2.1] - 2020-09-29
- Set fixed table column widths for improved formatting
- Correct section header colours in VMware default style
- Fix sort order of VMHost PCI Devices
- Fix VMHost reporting for InfoLevels 1 & 2
- Fix DSCluster reporting for InfoLevels 1 & 2
[1.2.0] - 2020-08-31
- vCenter Server advanced system settings
- vCenter Server alarm health check
- Basic VM storage policy reporting
- Headers, footers & table captions/numbering
- Improve table formatting
- Enhance vCenter alarm reporting
- Change Tag Assignment section to separate the category and tag to their own table columns
- Change Tag Assignment section to sort on Entity
- Rename InfoLevel
InformativetoAdv Summary - Move script functions from main script to private functions
- Section error with vSAN InfoLevel 4 or above
- Fix text color for highlighted cells in default VMware style
- Fix reporting of stateless boot devices (#76)
- Fix issue where script was failing trying to parse vSphere Tag data (#77)
- Fix issue with reporting on PCI-E device drivers by adding additional filter (#75)
[1.1.3] - 2020-02-04
- Add vCenter Server certificate information (#31)
- Add VM summary information
- Add VM disk and guest volume information
- Add Virtual Switch to VMkernel adapter information
- Add Virtual Switch & Port Group Traffic Shaping information
- Add vSAN Disk Groups, iSCSI Targets & LUN reporting
- Add number of paths to SCSI LUN information
- Add VMHost CPU & Memory totals to Informative level
- Add VM Connection State information & health check
- Add number of targets, devices & paths to storage adapters
- Add VMHost storage and network adapter health checks
- Add License expiration information
- Add additional information to VMkernel adapters
- Add NTP, SSH & ESXi Shell health checks
- Improve report formatting
- Improve VMHost storage adapter reporting (#32)
- Improve VMHost network adapter CDP reporting
- Improve VM SCSI controller reporting
- Update VMHost CPU & Memory totals/usage in Detailed level
- Update report JSON structure & default settings. A new report JSON must be generated for this release, use
New-AsBuiltReportConfig -Report VMware.vSphere -Path <path> -Overwrite - Update README with minimum required privileges to generate a VMware vSphere As Built Report. Full administrator privileges should no longer be required
- Resolve issue with VMHost PCI device reporting (#33)
- Resolve issue with reporting of ESXi boot device size (#65)
- Resolve issue with vSphere licensing (#68 & Fix #69)
- Resolve vSwitch reporting issue with physical adapters (#27)
- Resolve issue with VMHost uptime health check reporting
- Remove support for ESX/ESXi hosts prior to vSphere 5.0 (#67)
- Remove VMHost CPU & Memory usage from Informative level
[1.0.7] - 2019-06-21
- Update module manifest for icon and release notes
- Fix font in default VMware style
- Remove Services health check
[1.0.6] - 2019-05-16
- Improve code and report readability
- Update VMware default style to more closely align with Clarity
- Fix code errors which prevented a report from being generated
- Fix vCenter Server licensing reporting
- Fix Datastore reporting when an empty datastore cluster exists
- Fix DRS Cluster Group reporting when group does not contain any members
- Fix DRS Cluster Group sorting
- Fix VMHost reporting to exclude HCX Cloud Gateway host
[1.0.0] - 2019-03-27
- Add Update Manager Server name to vCenter Server detailed information
- Fix VMHost count for Distributed Virtual Switches
- Fix vCenter Server licensing for vCenter Server 5.5/6.0
- Fix script termination where ESXi hosts do not have a datastore
- Refactor into PowerShell module
- Update default VMware style sheet to include page orientation
- Change VM Snapshot reporting to be per VM for InfoLevel 3
- Remove NSX-V reporting
- Add Cluster VM Overrides section
- Improve code structure & readability
- Improve output formatting
- Improve vSphere HA/DRS Cluster reporting and health checks
- Improve VM reporting and health checks
- Fix sorting of numerous table entries
- Fix VMHost & VM uptime calculations
- Fix display of 3rd party Multipath Policy plugins
- Fix vSAN type & disk count
- Update
Get-Uptime&Get-Licensefunctions
- Add new VM health checks for CPU Hot Add/Remove, Memory Hot Add & Change Block Tracking
- Improve VM reporting for Guest OS, CPU Hot Add/Remove, Memory Hot Add & Change Block Tracking
- Minor updates to section paragraph text
- Add SDRS VM Overrides to Datastore Cluster section
- Rewrite SCSI LUN section to improve script performance
- Fix issues with current working directory paths
- Change InfoLevel settings and definitions
- Improve script formatting to align with PowerShell best practice guidelines
- Temporarily remove vCenter Server SSL Certificate section
- Add regions/endregions to all sections of script
- Add Resource Pool summary information
- Add vSAN summary information
- Add vCenter Server mail settings health check
- Add DSCluster health checks
- Add VM Power State health check
- Add support for NSX-V reporting
- Update about_Requires to PScribo module 0.7.24
- Improve formatting
- Move Datastore Clusters to its own dedicated section
- Rename Storage section to Datastores
- Rename Storage health checks section to Datastore