VMware Cloud Community
azuritekevin
Contributor
Contributor
Jump to solution

Get-VM Not Working Immediately After VM Deployment

Hi I have been testing a script of mine that uses "Get-VM" via the -Name param (but I have also tested using UUID). I have noticed that on some occasions it takes a randomy amount of time (usually under 5 minutes) for the VM to be detectable by "Get-VM" causing my script to sometimes missing certains VMs.

Am I missing something, or is there away to wait until the newly deployed VM is detectable? Thanks for the help.

0 Kudos
1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

It looks like the deployment was only finished at 2:26:57, which is after your Get-VM.

---------------------------------------------------------------------------------------------------------

Was it helpful? Let us know by completing this short survey here.


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

View solution in original post

0 Kudos
6 Replies
LucD
Leadership
Leadership
Jump to solution

You will have to give a bit more info, and preferably an example of what you see.
What environment are you working with, a vCenter, a standalone ESXi node...?

Btw, how do you do a Get-VM with the UUID?
Or did you mean Id?


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
azuritekevin
Contributor
Contributor
Jump to solution

Hi LucD, thanks for the fast reply!

I am working with a VCenter yes (I am on version 6.0). Forget about the ID/UUID, I was thinking of something else when I said that. I am using the VM name grabbed from the Event logs to try to get the VM with the -Name parameter.

Most of the time given a VM Name it properly grabs the VM like its supposed to.

In the case that it does not, it returns the following error:

Get-VM : 2019-07-09 2:24:12 PM Get-VM VM with name 'myvm' was not found using the specified filter(s).

At C:\Users\azuritekevin\Desktop\VM_Script\VM_Deploy.ps1:322 char:22

+             $newVM = Get-VM -name $vmarg.vm.name

+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~

If I run the command after maybe 4 or 5 minutes it will work though.

0 Kudos
LucD
Leadership
Leadership
Jump to solution

When you are connected (Connect-VIServer) to a vCenter, a New-VM will result in the new VM being registered in the vCenter.

I'm not sure why the registration of the VM would take longer in some cases.
It would help if you show how you do the New-VM.

Are you perhaps using the RunAsync switch?

You can inspect the events (with Get-VIEvent) to see when the VM creation and registration actually happened.

And compare that to the time when your Get-VM failed and when it succeeded.


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
azuritekevin
Contributor
Contributor
Jump to solution

I am not using RunAsync

The VMs are being created using the thick client or web client.

Here is what I see when I inspect the logs.

SrcTemplate          : VMware.Vim.VmEventArgument

Template             : True

Key                  : 126971613

ChainId              : 126971484

CreatedTime          : 7/9/2019 2:26:57 PM

UserName             : AZADOMAIN\azuritekevin

Datacenter           : VMware.Vim.DatacenterEventArgument

ComputeResource      : VMware.Vim.ComputeResourceEventArgument

Host                 : VMware.Vim.HostEventArgument

Vm                   : VMware.Vim.VmEventArgument

Ds                   :

Net                  :

Dvs                  :

FullFormattedMessage : Template template_v1 deployed on host esx-23

ChangeTag            :

SrcTemplate          : VMware.Vim.VmEventArgument

Template             : True

Key                  : 126971487

ChainId              : 126971484

CreatedTime          : 7/9/2019 2:20:49 PM

UserName             : AZADOMAIN\azuritekevin

Datacenter           : VMware.Vim.DatacenterEventArgument

ComputeResource      : VMware.Vim.ComputeResourceEventArgument

Host                 : VMware.Vim.HostEventArgument

Vm                   : VMware.Vim.VmEventArgument

Ds                   :

Net                  :

Dvs                  :

FullFormattedMessage : Deploying myvm on host esx-23 in L2 from template template_v1

ChangeTag            :

2:24:12  is the time my Get-VM ran, so after the second event. There is a 6:57 min between the first and second event. Maybe this is due to the time it takes for Hardware and OS Customization since this is deployed from a template?

0 Kudos
LucD
Leadership
Leadership
Jump to solution

The VM is deployed from a Template.
Are you using a OSCustomizationSpec?
Is the Task in the web client 100% complete before you do the Get-VM?
Cloning might take a while, depending on the size of the Template and the performance of your storage.

There should be more than those 2 events.
A sample deployment from a Template in my lab produces

19-Jul-19 20:42:31 VmBeingDeployedEvent      

19-Jul-19 20:42:31 VmUuidAssignedEvent       

19-Jul-19 20:42:31 VmInstanceUuidAssignedEvent

19-Jul-19 20:42:59 VmReconfiguredEvent       

19-Jul-19 20:42:59 VmDeployedEvent

I generated the above with

$vmName = 'NewVM'

$start = (Get-Date).AddMinutes(-5)


Get-VIEvent -Start $start -MaxSamples ([int]::MaxValue) |

where { $_.Vm.Name -match "$vmName" } |

Sort-Object -Property CreatedTime |

Select CreatedTime, @{N = 'Event'; E = { $_.GetType().Name} }


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
LucD
Leadership
Leadership
Jump to solution

It looks like the deployment was only finished at 2:26:57, which is after your Get-VM.

---------------------------------------------------------------------------------------------------------

Was it helpful? Let us know by completing this short survey here.


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos