Afficher et modifier les paramètres d’un hôte ESXi avec PowerCli
La semaine dernière, nous devions modifier des paramètres sur nos ESXIs pour suivre les recommandations de notre responsable Stockage. Je me suis donc tourné vers ma console PowerShell à la recherche des cmdlet pour lister et modifier les paramètres de nos hyperviseurs.
Très vite , je pensais avoir trouvé mon bonheur avec la cmdlet « Get-VMHostAdvancedConfiguration« .
1 2 3 4 5 6 |
PS D:\> Get-VMHostAdvancedConfiguration -VMHost MonEsxi* -Name Disk.QFullThreshold WARNING: The command 'Get-VMHostAdvancedConfiguration' is obsolete. Use Get-AdvancedSetting cmdlet instead. Name Value ---- ----- Disk.QFullThreshold 4 |
Mais cette commande est obsolète.
Detailed Description
This cmdlet is deprecated. Use Get-AdvancedSetting instead.
Mais bon, ils sont gentils chez VMWare, car ils nous donnent la solution, il faut utiliser la cmdlet Get-AdvencedSetting. Cette commande permet également de récupérer les informations de configuration des objets de type VIServer, VirtualMachine, VMHost, DatastoreCluster et Cluster. Si vous êtes intéressé, la documentation de cette cmdlet est accessible ici.
La cmdlet Get-AdvancedSetting nous permet donc de lister le millier de paramètre de nos hyperviseurs.
Get-AdvancedSetting -Entity (Get-VMHost MonEsxi*)
1 2 3 4 5 6 7 8 9 10 11 |
PS D:\> Get-AdvancedSetting -Entity (Get-VMHost MonEsxi*) Name Value Type Description ---- ----- ---- ----------- Net.CoalesceVersion x VMHost Config.HostAgent.... xxxxx VMHost VSAN.ClomMaxCompo... xxx VMHost ....... ....... VMkernel.Boot.use... xxxx VMHost Misc.WorldletRemo... X VMHost |
Les 3 paramètres que nos voulions modifier étaient :
- Disk.QFullThreshold
- Disk.QFullSampleSize
- Disk.DiskMaxIOSize
Nous avons donc fait un select pour filtrer nos paramètres.
Get-VMHost | Select-Object Name, @{Name= »Disk.QFullThreshold »; Expression={ ($_ | Get-AdvancedSetting -Name Disk.QFullThreshold).Value}}, @{Name= »Disk.QFullSampleSize »; Expression={ ($_ | Get-AdvancedSetting -Name Disk.QFullSampleSize).Value}}, @{Name= »Disk.DiskMaxIOSize »; Expression={ ($_ | Get-AdvancedSetting -Name Disk.DiskMaxIOSize).Value}}
1 2 3 4 5 6 7 8 9 10 11 |
PS D:\> Get-VMHost | Select-Object Name, @{Name="Disk.QFullThreshold"; Expression={ ($_ | Get-AdvancedSetting -Name Disk.QFullThreshold).Value}}, @{Name="Disk.QFullSampleSize"; Expression={ ($_ | Get-AdvancedSetting -Name Disk.QFullSampleSize).Value}}, @{Name="Disk.DiskMaxIOSize"; Expression={ ($_ | Get-AdvancedSetting -Name Disk.DiskMaxIOSize).Value}} Name Disk.QFullThreshold Disk.QFullSampleSize Disk.DiskMaxIOSize ---- ------------------- -------------------- ------------------ MonEsxi1 4 32 128 MonEsxi2 4 32 128 PS D:\> |
Maintenant que nous avons pu lister les paramètres de notre ESXI, il faut donc les modifier. Comme vous le supposez certainement , à tout GET il y a son SET. La commande pour la modification des paramètres est donc
Set-AdvancedSetting -Value $nouvelleValeur
Vous faites donc un Get-AdvencedSetting pour accéder au paramètre que vous souhaitez modifié sur votre ESXI et dans le pipe vous effectuez le Set-AdvencedSetting en passant en paramètre la nouvelle valeur.
1 |
Get-AdvancedSetting -Entity (Get-VMHost -name $esxi.name) -Name $LeNomDeMonParametre | Set-AdvancedSetting -Value $maNouvelleValeur -Confirm:$false |
Voila , avec cette simple commande, vous pouvez donc modifié le paramètre sur votre ESXI.
Vous pouvez bien sur en jouant sur les paramètres du Get-VMHOST, modifier le paramètre sur les ESXIs d’un même cluster
Get-AdvancedSetting -Entity (Get-VMHost -Location $monCluster) -Name $LeNomDeMonParametre | Set-AdvancedSetting -Value $maNouvelleValeur -Confirm:$false
1 |
Get-AdvancedSetting -Entity (Get-VMHost -Location $monCluster) -Name $LeNomDeMonParametre | Set-AdvancedSetting -Value $maNouvelleValeur -Confirm:$false |
Ou sur tous les ESXIs des VCENTER auxquels vous êtes connecté.
Get-AdvancedSetting -Entity (Get-VMHost) -Name $LeNomDeMonParametre | Set-AdvancedSetting -Value $maNouvelleValeur -Confirm:$false
1 |
Get-AdvancedSetting -Entity (Get-VMHost) -Name $LeNomDeMonParametre | Set-AdvancedSetting -Value $maNouvelleValeur -Confirm:$false |