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)