Vous trouverez ici quelques mini scripts, tenant généralement en une seule ligne, et ne nécessitant pas un article dédié.

Ils n’ont rien de vraiment compliqué, mais utilisent parfois des propriétés peu courantes, et il était plus simple de les noter pour les réutiliser que de les reconstituer à chaque fois.


Nombre de hosts de chaque version :

Get-VMhost | Group-Object -Property Version, Build | Format-Table Name, Count -Autosize

Liste des VMkernels avec leurs principales propriétés :

Get-VMHostNetworkAdapter -VMKernel  | Sort-Object VMHost, DeviceNAme | Select-Object VMHost, @{Name="VMKernel";Expression={$_.DeviceName}}, IP, Mac, Mtu, PortGroupName, @{Name="Management";Expression={$_.ManagementTrafficEnabled}}, @{Name="vMotion";Expression={$_.VMotionEnabled}}, @{Name="FT Logging";Expression={$_.FaultToleranceLoggingEnabled}}, @{Name="vSan";Expression={$_.VsanTrafficEnabled}} | Format-Table * -Autosize

Liste tous les CD ayant une image ISO définie, avec leur statut :

Get-VM | Get-CDDrive | Where-Object {$_.IsoPath -like "*iso"} | ft Parent, Name, ConnectionState, IsoPath -Autosize

Repasse à « Client Device » tous les CD ayant une images ISO définie mais non connectée (donc non utilisée) :

Get-VM | Get-CDDrive | Where-Object {($_.ConnectionState.Connected -eq $false) -and ($_.IsoPath -like "*iso")} | Set-CDDrive -NoMedia -Confirm:$false | ft Parent, Name, ConnectionState -Autosize

Liste les VMs hébergées sur un datastore local à un ESX :

Get-View -ViewType Datastore | Where-Object {$_.Summary.MultipleHostAccess -match 'false'} | ForEach-Object {Get-Datastore $_.Name} | Get-VM

Déplacer une VM vers un datastore, un host, un répertoire ou un resource pool (chaque requête entre parenthèse ne doit renvoyer qu’un unique élément) :

Get-VM VmName | Move-VM -Datastore (Get-datastore DatastoreName)
Get-VM VmName | Move-VM -Destination (Get-VMHost HostName)
Get-VM VmName | Move-VM -Destination (Get-Folder FolderName)
Get-VM VmName | Move-VM -Destination (Get-ResourcePool ResourcePoolName)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *