Dernière version de mon script powercli d’inventaire de VMs avec plusieurs optimisations récupérées sur le forum VMware principalement :

$vCenter = Read-Host "Entrer ici le nom ou l'ip du vCenter"
Connect-VIServer $vCenter

#Creation du dossier pour l'export
md "C:\Scripts" -ErrorAction SilentlyContinue

#Inventaire VMs 
Get-View -ViewType VirtualMachine -Property  Name, Guest, Parent, Summary, Config, Runtime |

select Name,

    @{N='VMHostname';E={$_.Guest.Hostname}},
	#set variable parent puis remmonte d'un cran avec $parent.parent tant que le moref n'est pas datacenter
	@{N='Datacenter';E={
	$parent = Get-View -Id $_.Parent -Property Name,Parent
		Do {$parent = Get-View -Id $parent.Parent -Property Name,Parent }
		while ($parent.MoRef.Type -ne "DataCenter" -and $parent), $parent.name}},
	@{N='PowerState';E={$_.Summary.Runtime.PowerState}},
	@{N='OS';E={$_.Config.GuestFullName}},
	#Ancienne affichage IP
	#@{N='IP';E={$_.Guest.IPAddress}}
	#avantage de Net.IPAddress donne toutes les IPs | where -filtertype {$_ est inférieur à 'a')
	#affichage IPV4 seulement (en mode call de methode where)
	@{N='IP';E={$_.Guest.Net.IPAddress.where{$_ -notlike "*fe80*"}}},
	@{N='MacAddress';E={$_.Guest.Net.MacAddress}},
	@{N='NetworkName';E={$_.Guest.Net.Network}},
	@{N='VMToolsStatus';E={$_.Guest.ToolsStatus}},
	# use UpdateViewData() to populate the linked view, then access said linked view
	@{N='Cluster';E={$_.UpdateViewData("Runtime.host.parent.name"), $_.Runtime.LinkedView.Host.LinkedView.Parent.Name}},
	@{N='vCPU';E={$_.Summary.Config.NumCpu}},
	@{N='vRAM';E={$_.Summary.Config.MemorySizeMB}},
	#le premier split prend la premiere expression, le deuxieme retire les crochets, le [1] selectionne la premiere valeur car c'est un tableau
	@{N='Datastore';E={$_.Summary.Config.VmPathName.Split()[0].split("[]")[1]}},
	#formule mathematique [math]::round(valeur entre parentheses) puis division ou autre c'est bien de mettre 1GB il fait directement 1024 puis le chiffre après la virgule correspond au nombre de decimal
	@{N='DiskGB';E={[Math]::Round((($_.Guest.Disk | Measure-Object -Property Capacity -Sum).Sum / 1GB),0)}},
	@{N='DiskFree';E={[Math]::Round((($_.Guest.Disk | Measure-Object -Property FreeSpace -Sum).Sum / 1GB),0)}} |
	
		Export-csv -NoTypeInformation -encoding "unicode" -append "C:\Scripts\export-VMs.csv"

Voici le résultat dans Excel:

Get-VMHost | Sort | Select Name,@{ N=”CurrentPolicy”; E={$_.ExtensionData.config.PowerSystemInfo.CurrentPolicy.ShortName}},@{ N=”CurrentPolicyKey”; E={$_.ExtensionData.config.PowerSystemInfo.CurrentPolicy.Key}},@{ N=”AvailablePolicies”; E={$_.ExtensionData.config.PowerSystemCapability.AvailablePolicy.ShortName}}

 

source MKguy : https://communities.vmware.com/thread/461039

Il était temps d’activer cette fonctionnalité VMware vieille de la 4.0, l’ajout à chaud de composants !

Avec l’aide des scripts d’Arne Fokkema, j’avais les fonctions pour automatiser l’application du paramétrage:

PowerCLI: Enable/Disable the VM Hot Add features

Combiné à quelques filtres du type :

Get-VM |Where {$_.NumCPU -gt 8}

/!\ l’activation de l’ajout à chaud du CPU désactive le vNUMA donc pour les machines qui pourraient dépasser le numa node size de vos sockets faites attention voir KB2040375 vNUMA is disabled if VCPU hotplug is enabled.

Il ne me restait plus qu’à éteindre les machines pour activer cette superbe option !

Je ferai une update concernant cette automatisation pour les intéressés.