Comment déterminer la date de création d’une machine virtuelle avec PowerShell
Avant la version VMware 6.7
Avant la version VMware 6.7, quand on souhaitait connaitre la date de création d’une vm, nous devions chercher cette information dans les Events de la vm, soit au travers de la console web, soit en Powershell. Mais cette information était quelques peu volatile, car elle disparaissait très vite.
Ci-dessous, une commande Powershell mise à disposition par LucD. Cette commande recherche dans les Events de la vm les messages indiquant la création d’une nouvelle vm.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
. $vmName = '*' $eventTYpes = 'VmCreatedEvent', 'VmClonedEvent', 'VmDeployedEvent', 'VmRegisteredEvent' Get-VM -Name $vmName | ForEach-Object -Process { Get-VIEvent -Entity $_ -MaxSamples ([int]::MaxValue) | where { $eventTYpes -contains $_.GetType().Name } | Sort-Object -Property CreatedTime -Descending | Select -First 1 | ForEach-Object -Process { New-Object PSObject -Property ([ordered]@{ VM = $_.VM.Name CreatedTime = $_.CreatedTime User = $_.UserName EventType = $_.GetType().Name} ) } } Blog: http://lucd.info | Twitter: @LucD22 | PowerCLI Reference co-author: http://tinyurl.com/hkn4glz . |
Exemple de sortie :
1 2 3 4 5 6 7 8 |
. VM CreatedTime User EventType -------- -------------------- ------- ----------------------- MaVM 12/02/2019 09:48:14 domain\monuser VmDeployedEvent . |
A partir de la version VMware 6.7
Avec l’arrivée de VMware version 6.7 est apparu dans la configuration de la VM le champ « CreateDate »
1 2 3 4 5 6 7 8 9 10 11 |
. PS D:\> (get-vm -name myvm ).ExtensionData.Config Name : myvm GuestFullName : Red Hat Enterprise Linux 7 (64-bit) Version : vmx-14 ....... <strong>CreateDate : 28/01/2020 15:39:33</strong> . |
Pour que la date de création de vm apparaisse, il faut :
-
- Que le vCenter et les ESXIs soit en version 6.7
- Que la vm ait été déployé après la mise à jour de l’infrastructure.
Pour toutes les vms déployé avant la mise à jour de l’infrastructure en 6.7, il est noté dans le champ « CreateDate » l’heure 0 de Posix, le « 01/01/1970 00:00:00 »
Pour lister toutes les vms avec leurs date de création, on peut utiliser la commande :
Get-vm | select name,
@{N=’Date Creation’;E={$datecreated=$_.ExtensionData.Config.createDate; if($datecreated -match « 1970 00:00:00 »){« — non connu –« }else{$datecreated}}} |
sort-object « Date Creation » -Descending
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
. PS E:\> get-vm | select name, @{N='Date Creation'; E={$datecreated=$_.ExtensionData.Config.createDate; if($datecreated -match "1970 00:00:00"){"-- non connu --"} else{$datecreated} } } | sort-object "Date Creation" -Descending Name Date Creation ---- ------------- myVM1 02/02/2020 13:45:40 myVM2 01/02/2020 08:48:12 myVM3 01/02/2020 08:44:27 .... myVM56 -- non connu -- myVM57 -- non connu -- . |
Source :
A lire le post sur virtuallyGhetto : https://www.virtuallyghetto.com/2018/04/vm-creation-date-now-available-in-vsphere-6-7.html