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

Depuis l’ESXi qui héberge la VM :

net-stats -l

noter le PortNum Correspondant à la VM qui nous intéresse dans notre exemple 67108873.

Pour avoir les statistiques nombre de packet et nombre de drop en émission et réception :

vsish -e get /net/portsets/vSwitch2/ports/67108873

Résumé des réceptions :

vsish -e get /net/portsets/vSwitch2/ports/67108873/vmxnet3/rxSummary

Résumé émissions :

vsish -e get /net/portsets/vSwitch2/ports/67108873/vmxnet3/txSummary

Toutes ces commandes peuvent aider à surveiller les drops de remplissage de “ring buffer” :

Large packet loss at the guest operating system level on the VMXNET3 vNIC in ESXi (2039495) 

Collecte toutes les 2 secondes pour 15 minutes :

https://ESXi_host_FQDN/cgi-bin/vm-support.cgi?performance=true&interval=5&duration=300

 

 Alors que je me faisais une joie d’avoir un client vSphere “supporté” en HTML5, quelle ne fut pas ma surprise à la connexion sur le VCSA (vCenter Server Appliance) fraîchement upgradé:

Oui, vous avez bien vu, il y a toujours 2 clients, un avec Flash et l’autre en HTML5 mais avec des fonctionnalités partielles.

Je ne m’attendais pas à ça, mais VMware a simplement pris le fling du client HTML5 et collé un tampon supporté dessus !

Pour rappel, les flings sont des outils mis à disposition en mode laboratoire expérimental, ils ne devraient pas être utilisés en production au dire même de VMware, mais c’est une source d’outils très pratiques et communément utilisés par beaucoup d’Admin. Vous pouvez explorer cette caisse à outils ici : Labs VMware Flings

Du coup, j’ai fait quelques recherches sur les différences entre les deux clients, la liste est un peu longue, elle se trouve ici : vSphere 6.5 HTML 5 functionnality support.

Des mises à jour régulières sont promises et elles seront poussées d’abord sur le fling qui lui reste bien sr non supporté…

 

A noter la convention de nommage, le “vSphere Web Client” correspond au client Flash et le “vSphere Client” le HTML5.

 

Lien vers le fling du client html5 à réserver pour vos labs : vsphere-html5-web-client.

 

Nous avions déjà un export automatique vers notre CMDB en place, mais suite à une demande de modification, je me suis dit qu’il était temps de remplacer notre bon vieux get-vm.

Je pensais arriver à un meilleur résultat, mais les requêtes pour le Datacenter et le Cluster ralentissent vraiment l’exécution, malgré ça, l’ancien script prenait 2h55, le nouveau 39min soit presque 4.5 fois plus rapide pour le même scope soit 5 vCenters et un peu plus de 2200VMs.

@"

===============================================================================
Description:   Exports VM Informations to CMDB
Usage:         Schedule task on vCenter
===============================================================================

"@
$StartMs = (Get-Date)
0..1000 | ForEach-Object {$i++}

#Standard PowerCli cmdlets
add-pssnapin VMware.VimAutomation.Core

#Renseigner votre/vos vCenter(s) separé par des virgules
Write-Host "Renseigner votre/vos vCenter(s) separé(s) par des virgules"
$vCenters= Read-Host "VCENTER_NAME"
$Path = Read-Host "Path"

#Date
$Date = Get-Date -Format yyyy-MM-dd

Write-Host "Renseigner le chemin d'export du fichier resultat ainsi que le nom du fichier"
$ExportFilePath = Read-host "$Path\$date\Export-CMDB.csv"

$listVM=@("VMName,VMHostname,Datacenter,Powerstate,OS,IPAddress,MacAddress,NetworkName,ToolsStatus,Cluster,NumCPU,MemMb,Datastore,DiskGB,DiskFree")

 Foreach ($vCenter in $vCenters) {
 Connect-VIServer $vCenter

 $VMs = Get-View -ViewType VirtualMachine
 

 
ForEach ($vm in $VMs) {
      $VMName = $vm.Name
      $VMHostname = $vm.Guest.Hostname
      $parentObj = Get-View $vm.Parent
      #while ($parentObj -isnot [VMware.Vim.Datacenter]) {$parentObj = Get-View $parentObj.Parent | select -Unique}
      while ($parentObj -isnot [VMware.Vim.Datacenter]) {$parentObj = Get-View $parentObj.Parent}
      #Boucle et remonte d'un niveau dans l'arborescence jusqu'à trouver le datacenter
      $Datacenter =   $parentObj.Name
      $Powerstate = $vm.Summary.Runtime.PowerState
      $OS = $vm.config.GuestFullName
      $IPAddress = $vm.Guest.Net.IPAddress
      $MacAddress = $vm.Guest.net.MacAddress
      $NetworkName = $vm.Guest.net.Network
      $ToolsStatus = $vm.Guest.ToolsStatus
      ## use UpdateViewData() to populate the linked view, then access said linked view
      $vm.UpdateViewData("Runtime.Host.Parent.Name")
      $Cluster = $vm.Runtime.LinkedView.Host.LinkedView.Parent.Name
      $NumCPU = $vm.Summary.Config.NumCpu
      $MemMb = $vm.Summary.Config.MemorySizeMB
      $Datastore = $vm.Summary.Config.VmPathName.Split()[0].split('[]')
      #le premier split prend la premiere expression, le deuxieme retire les crochets
      $DiskGB = [Math]::Round((($vm.Guest.Disk | Measure-Object -Property Capacity -Sum).Sum / 1GB),2)
      $DiskFree = [Math]::Round((($vm.Guest.Disk | Measure-Object -Property FreeSpace -Sum).Sum / 1GB),2)
      $listVM+=("$VMName,$VMHostname,$Datacenter,$Powerstate,$OS,$IPAddress,$MacAddress,$NetworkName,$ToolsStatus,$Cluster,$NumCPU,$MemMb,$Datastore,$DiskGB,$DiskFree")
      Write-Host "Traitement de la machine $VMName" -ForegroundColor Yellow
      }
Disconnect-VIServer $Vcenter -Force -Confirm:$false
}

$listVM > $ExportFilePath
Write-Host "Creation du Fichier résultat" -ForegroundColor Red


Write-Host "Déconnection des vCenters" -ForegroundColor Gray
#$VC = Disconnect-VIServer * -Confirm:$False

$EndMs = (Get-Date)
Write-Host "Le script s'est executé en  $($EndMs - $StartMs)"