Advertisement
VickVega

Get-VM-Info

Nov 16th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # requires PowerCLI
  2. # requires Get-Module -Name VMware* -ListAvailable | Import-Module
  3. # requires Connect-VIServer "vcenter1", "vcenter2" , "etc"
  4.  
  5. # Known issues:
  6. # MAC info is not avaialble
  7. # Long time to run
  8.  
  9. &{foreach($vm in (get-VM)) {
  10.     $vm.ExtensionData.Guest.Net | select -Property @{N='VM';E={$vm.Name}},
  11.     @{N='Host';E={$vm.VMHost.Name}},
  12.     @{N='OS';E={$vm.Guest.OSFullName}},
  13.     @{N='Tools';E={$vm.ExtensionData.Guest.ToolsRunningStatus}},
  14.     @{N='NicType';E={[string]::Join(',',(Get-NetworkAdapter -Vm $vm | Select-Object -ExpandProperty Type))}},
  15.     @{N='VLAN';E={[string]::Join(',',(Get-NetworkAdapter -Vm $vm | Select-Object -ExpandProperty NetworkName))}},
  16.     @{N='IP';E={[string]::Join(',',($vm.Guest.IPAddress | Where {($_.Split(".")).length -eq 4}))}},
  17.     @{N='Gateway';E={[string]::Join(',',($vm.ExtensionData.Guest.IpStack.IpRouteConfig.IpRoute | %{if($_.Gateway.IpAddress){$_.Gateway.IpAddress}}))}},
  18.     @{N='Subnet Mask';E={
  19.                 $dec = [Convert]::ToUInt32($(('1' * $_.IpConfig.IpAddress[0].PrefixLength).PadRight(32, '0')), 2)
  20.                 $DottedIP = $( For ($i = 3; $i -gt -1; $i--) {
  21.                         $Remainder = $dec % [Math]::Pow(256, $i)
  22.                         (                        $dec - $Remainder) / [Math]::Pow(256, $i)
  23.                         $dec = $Remainder
  24.                     } )
  25.                 [String]::Join('.', $DottedIP)
  26.             }},
  27.     @{N="DNS";E={[string]::Join(',',($vm.ExtensionData.Guest.IpStack.DnsConfig.IpAddress))}},
  28.     @{N='MAC';E={[string]::Join(',',$_.MacAddress)}}
  29.   }
  30. } | ft -AutoSize | Out-String -Width 4096 | Out-File C:\temp\results.txt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement