I don’t know many people that enjoy writing documentation but it is a nessesary evil and can give you the opportunity to be creative with how you produce it.
Often I will need to document a point in time install for ESXi hosts so have put together the below PowerCLI function to obtain some hardware and build information back.
Running Get-HostDetails after connecting to a host or vCenter
There are loads of good examples available but this works well for me.
function Get-HostDetails {
Param(
[string]$ESX = '*'
)
<#
.Synopsis
The Get-HostDetails retrieves Information regarding build numbers of ESXi hosts
.EXAMPLE
Get-HostDetails
.EXAMPLE
Get-HostDetails -ESX "esx1.domain.com"
.EXAMPLE
$info = Get-HostDetails -ESX "esx1.domain.com","esx2.domain.com"
.NOTES
Chris Tucker
@CT_Technical
#>
$myESXiHosts = Get-VMHost $ESX
$HostAudit = @()
foreach ($VMHost in $myesxihosts) {
$HostDetails = New-Object PSObject
$HostDetails | Add-Member -name "Hostname" -Value $VMHost.name -MemberType NoteProperty
$HostDetails | Add-Member -name "ESXi Version" -Value $VMHost.Version -MemberType Noteproperty
$HostDetails | Add-Member -name "Build" -Value $VMHost.Build -MemberType Noteproperty
$HostDetails | Add-Member -name "Make" -Value $VMHost.Manufacturer -MemberType Noteproperty
$HostDetails | Add-Member -name "Model" -Value $VMHost.Model -MemberType Noteproperty
$HostDetails | Add-Member -name "Tag" -Value (Get-EsxCli -VMHost $VMHost.Name).hardware.platform.get().SerialNumber -MemberType Noteproperty
$HostDetails | Add-Member -name "Date Checked" -Value (Get-Date -format d) -MemberType NoteProperty
$HostAudit += $HostDetails
}
Write-Output $HostAudit
}
Output as below