PowerCLI, comandos útiles sin scripts

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:

1
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:

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

Desmontar todas las ISOs montadas en todas las VMs:

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

Ver estado del servicio SSH:

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

Arrancar servicio SSH:

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

Apagar servicio SSH:

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

Contar numero de VMs por host:

1
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:

1
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:

1
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:

1
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:

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

Ver las VMs que se han eliminado recientemente:

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

Ver errores de la última semana:

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

Ver VMs con la nic e1000:

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

Búsqueda de VM por su MAC ADDRESS:

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

Búsqueda de VMs con discos RDM:

1
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.

0%