Cluster Inventory Report or CMDB Report for VMs, Cluster, Hosts, vCenter – Using PowerCLI – VirtuallyThatGuy

A quick blog post about gathering VM information for VMs running in your estate.

#Alter script to use the get cluster instead 
#Start Script
Start-Transcript -path C:\Scripts\VM_CLuster_Host_Datastore_PortGroup_vLANiD.txt

#Connect vCenter Servers
Connect-Viserver uk3p-vc01.lab.local, ntcp-vc01.lab.local
Get-Cluster | Get-VM | where { ($_ | Get-VirtualPortGroup )} | Select Name, Powerstate, NumCPU, corespersocket, memoryGB, version, guestid, vmhost,
@{N="Datacenter";E={Get-DataCenter -VM $_}}, `
@{N="Cluster";E={Get-Cluster -VM $_}}, `
{ [PSCustomObject] @{ vCenter = $_.Uid.Substring($_.Uid.IndexOf('@')+1).Split(":")[0] } }, `
@{N="ESXi Host";E={Get-VMHost -VM $_}}, `
@{N="Datastore";E={Get-Datastore -VM $_}}, `
@{N="MacAddress";E={[string]::Join(',',($_.Guest.Nics | %{$_.MacAddress}))}}, `
@{N="VLanID";E={[string]::Join('#',(Get-VirtualPortGroup -VM $_ | %{$_.VLanID}))}}, `
@{N="PortGroup";E={Get-VirtualPortGroup -VM $_}}| `
Export-Csv -NoTypeInformation C:\Scripts\VM_CLuster_Host_Datastore_PortGroup_vLANiD.csv
#Stop Script
Stop-Transcript
 
Save as ConfigMgmrDB_Report.ps1

Cluster Inventory Reports 

 

#Alter script to use the get cluster instead 

#Start Script

Start-Transcript​​ -path​​ C:\Scripts\VM_CLuster_Host_Datastore_PortGroup_vLANiD.txt

 

#Connect vCenter Servers

Connect-Viserver​​ uk3p-vc01.lab.local,​​ ntcp-vc01.lab.local

Get-Cluster​​ |​​ Get-VM​​ |​​ where​​ { ($_​​ |​​ Get-VirtualPortGroup​​ )}​​ |​​ Select​​ Name,​​ Powerstate,​​ NumCPU,​​ corespersocket,​​ memoryGB,​​ version,​​ guestid,​​ vmhost,

@{N="Datacenter";E={Get-DataCenter​​ -VM​​ $_}},​​ `

@{N="Cluster";E={Get-Cluster​​ -VM​​ $_}},​​ `

{​​ [PSCustomObject]​​ @{ vCenter​​ =​​ $_.Uid.Substring($_.Uid.IndexOf('@')+1).Split(":")[0]​​ } },​​ `

@{N="ESXi Host";E={Get-VMHost​​ -VM​​ $_}},​​ `

@{N="Datastore";E={Get-Datastore​​ -VM​​ $_}},​​ `

@{N="MacAddress";E={[string]::Join(',',($_.Guest.Nics​​ |​​ %{$_.MacAddress}))}},​​ `

@{N="VLanID";E={[string]::Join('#',(Get-VirtualPortGroup​​ -VM​​ $_​​ |​​ %{$_.VLanID}))}},​​ `

@{N="PortGroup";E={Get-VirtualPortGroup​​ -VM​​ $_}}|​​ `

Export-Csv​​ -NoTypeInformation​​ C:\Scripts\VM_CLuster_Host_Datastore_PortGroup_vLANiD.csv

#Stop Script

Stop-Transcript

 

Save as ConfigMgmrDB_Report.ps1

 

You May Also Like

About the Author: VirtuallyThatGuy

Leave a Reply

Your email address will not be published. Required fields are marked *