Miquel Mariano
by Miquel Mariano
2 min read

Tags

Buenos días a tod@s!!

En el post de hoy me gustaría compartir con todos vosotros una serie de comandos PowerCLI que nos dan información muy útil de nuestro entorno vSphere. Vamos al lío:

Lista de VMs con snapshots:

Get-VM | Get-Snapshot | where {$_.Name -notmatch "Restore Point \w"} | Select VM,Name,Description,@{Label="Size";Expression={"{0:N2} GB" -f ($_.SizeGB)}},Created | FT -Autosize

Lista de VMs con CD montado:

Get-VM | Get-CDDrive | Where-Object {$_.IsoPath -ne $null} | Select Parent,IsoPath 

Desmontar todas las ISOs montadas en todas las VMs:

Get-VM | Get-CDDrive | where {$_.IsoPath -ne $null} | Set-CDDrive -NoMedia -Confirm:$False

Ver estado del servicio SSH:

Get-VMHost | Get-VMHostService | Where { $_.Key -eq "TSM-SSH" } |select VMHost, Label, Running

Arrancar servicio SSH:

Get-VMHost | Foreach {Start-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH"} )}

Apagar servicio SSH:

Get-VMHost | Foreach {stop-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH"} )}

Contar numero de VMs por host:

Get-VMHost | Sort-Object Name | Select Name,@{N="VM";E={ if ($_.ExtensionData.Vm -ne $null) { $_.ExtensionData.Vm.Count } else {0}}}

Contar numero de VMs por datastore:

Get-datastore | Sort-Object Name | Select Name,@{N="VM";E={ if ($_.ExtensionData.Vm -ne $null) { $_.ExtensionData.Vm.Count } else {0}}}

Ver información hardware de los ESXi:

Get-VMHost |Sort Name |Get-View | Select Name, @{N=“Type“;E={$_.Hardware.SystemInfo.Vendor+ “ “ + $_.Hardware.SystemInfo.Model}}, @{N=“CPU“;E={“PROC:“ + $_.Hardware.CpuInfo.NumCpuPackages + “CORES:“ + $_.Hardware.CpuInfo.NumCpuCores + “ MHZ: “ +[math]::round($_.Hardware.CpuInfo.Hz / 1000000, 0)}}, @{N=“MEM“;E={“” + [math]::round($_.Hardware.MemorySize / 1GB, 0) + “GB“}} | FT -autosize

Ver estado de las VMware Tools y Virtual Hardware de las VMs encendidas:

Get-VM | Select @{N=”VMName”; E={$_.Name}}, @{N=”State”; E={$_.PowerState}},  @{N=”HardwareVersion”; E={$_.Extensiondata.Config.Version}}, @{N=”ToolsVersion”; E={$_.Extensiondata.Config.Tools.ToolsVersion}}, @{N=”ToolsStatus”; E={$_.Extensiondata.Summary.Guest.ToolsStatus}}, @{N=”ToolsVersionStatus”; E={$_.Extensiondata.Summary.Guest.ToolsVersionStatus}}, @{N=”ToolsRunningStatus”; E={$_.Extensiondata.Summary.Guest.ToolsRunningStatus}} | where state -notmatch poweredoff | FT

Ver las VMs que se han creado recientemente:

Get-VIEvent -maxsamples 10000 | Where {$_.Gettype().Name -eq "VmCreatedEvent"} | Select createdTime, UserName, FullFormattedMessage

Ver las VMs que se han eliminado recientemente:

Get-VIEvent -maxsamples 10000 | Where {$_.Gettype().Name -eq "VmRemovedEvent"} | Select createdTime, UserName, FullFormattedMessage

Ver errores de la última semana:

Get-VIEvent -maxsamples 10000 -Type Error -Start (get-date).AddDays(-7) | Select createdTime, fullFormattedMessage

Ver VMs con la nic e1000:

get-vm | Get-NetworkAdapter | where {$_.type -match "e1000"} | select-object parent,networkname,name,type

Búsqueda de VM por su MAC ADDRESS:

Get-VM | Get-NetworkAdapter | Where-Object {$_.MacAddress -eq "00:50:56:ba:ca:5b"} | FL

Búsqueda de VMs con discos RDM:

Get-VM | Get-HardDisk | Where-Object {$_.DiskType -like “Raw*} | Select @{N=”VMName”;E={$_.Parent}},Name,DiskType,@{N=”LUN_ID”;E={$_.ScsiCanonicalName}},@{N=”VML_ID”;E={$_.DeviceName}},Filename,CapacityGB

Espero que os sea de utilidad.

Si vosotros tenéis alguno que queráis compartir, por favor, dejado en los comentarios y lo incorporaremos a la lista.

Muchas gracias.

Un saludo!

Miquel.