Small collection of VMware PowerCLI / Powershell scripts and onliners to save time re-typing them:
- Get a list of all virtual machines with snapshots and save it to a csv file;
# Get-VM | Get-Snapshot | Select-Object VM, Name, SizeMB, Created, Description | Export-Csv c:snapshots.csv #
- Get a list of virtual machines, guest IP address, Datacenter, Cluster and Datastore they are running on;
# Get-VM | select @{ Name = "Datacenter"; Expression = {Get-Datacenter -VM $_ }},` @{ Name = "Cluster"; Expression = {Get-Cluster -VM $_ }},` Name,` @{ Name = "IPAddress"; Expression = { $_.Guest.IPAddress }},` NumCPU, MemoryMb, ResourcePool, ProvisionedSpaceGB, UsedSpaceGB,` @{ Name = "Datastore"; Expression = {Get-Datastore -VM $_ }},` PowerState, Notes | Sort Name` | Export-Csv "c:DC1.csv" #
- Change Port Group on multiple VMs;
$OldPortGroup = 'OLD_PG' $NewPortGroup = 'New_PG' Get-VM | Get-NetworkAdapter | where {$_.NetworkName -eq $OldPortGroup} | Set-NetworkAdapter -NetworkName $NewPortGroup -Confirm:$false
- Enter/Exit Maintenance Mode;
To enter Maintenance Mode, at the ESX console type:vim-cmd /hostsvc/maintenance_mode_enter
To exit Maintenance Mode type:
vim-cmd /hostsvc/maintenance_mode_exit
- Get a list of all virtual machines with a specific vNIC type, export to csv file;
where {$_.Type -eq 'Vmxnet3'}
– all VMs with VMXNET3 network adapter type
where {$_.Type -eq 'e1000'}
– all VMs with Intel E1000 network adapter type
where {$_.Type -eq 'Flexible'}
– all VMs with AMD 79C970 PCnet32 – LANCE NIC network adapter type
where {$_.Type -ne 'Vmxnet3'}
– any nic but VMXNET3# Get-VM | Get-NetworkAdapter | where {$_.Type -eq 'Vmxnet3'} | foreach ($_) {Write-Host $_.parent.name, $_.Name, $_.Type} OR Get-VM | Get-NetworkAdapter | where {$_.Type -eq 'Vmxnet3'} | Select @{N="VM";E={$_.parent.name}}, Name, Type | Export-Csv -Path c:nic.csv #
- Find virtual machines with disks that need consolidation;
Find VMs: Get-VM | where {$_.ExtensionData.Runtime.consolidationNeeded} | Select Name Find VMs and consolidate all: Get-VM | where {$_.ExtensionData.Runtime.consolidationNeeded} | %{$_.consolidatevmdisks_task()} #
- List vmnic and vmkernel MAC addresses of the host;
Get-VMHostNetworkAdapter | Select @{Name = "ESXi"; Expression = {$_.VMHost.Name}}, Name, Mac ESXi Name Mac ---- ---- --- host1.vstrong.info vmnic0 00:25:b5:01:01:07 host1.vstrong.info vmnic1 00:25:b5:01:01:06 host1.vstrong.info vmk0 00:25:b5:01:01:07 host1.vstrong.info vmk1 00:50:56:71:1d:b9 host1.vstrong.info vmk2 00:50:56:7c:2a:d6
- Stay tuned…
Recent Comments