VMware Cloud Community
Pcliba
Contributor
Contributor
Jump to solution

Create own Event?

Hi all,

is it possible to creat a own event for e.g. VM with powercli?

We have scripts that use a special script user for execution in vcenter.

I need a way to store the name of the user who executed the script in vcenter.

When I execute the script I certainly see the name of the script user. Is there a way to create an own event which I can see in the VMs "Task&Events" tab afterwards?

Or is there another solution to fulfill such a request?

Thanks in advance!

53b1

0 Kudos
1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

You sure can, there are 2 options.

1) The UserEvent

$si = Get-View ServiceInstance

$evtMgr = Get-View -Id $si.Content.EventManager

$entity = Get-VM -Name VM1

$evtMgr.LogUserEvent($entity.Extensiondata.Moref,"Testing a User event")

2) Simulate any event

Depending on the type of event you select, you will have to provide values for some properties.

But the system will overwrite some of these.

The following sample code generates a VmRegisteredEvent

$event = New-Object VMware.Vim.VmRegisteredEvent

$event.Key = Get-Random

$event.ChainId = Get-Random

$event.CreatedTime = Get-Date

$event.UserName = 'domain\anyuser'

$event.Vm = New-Object VMware.Vim.VmEventArgument

$event.Vm.Name = 'AnyVM'

$event.Vm.Vm = (Get-VM -Name VM1).ExtensionData.MoRef

$event.Host = New-Object VMware.Vim.HostEventArgument

$event.Host.Host = (Get-VMHost -Name esx1*).ExtensionData.MoRef

$event.Host.Name = 'AnyEsxi'

$evtMgr.PostEvent($event,$null)


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

View solution in original post

2 Replies
LucD
Leadership
Leadership
Jump to solution

You sure can, there are 2 options.

1) The UserEvent

$si = Get-View ServiceInstance

$evtMgr = Get-View -Id $si.Content.EventManager

$entity = Get-VM -Name VM1

$evtMgr.LogUserEvent($entity.Extensiondata.Moref,"Testing a User event")

2) Simulate any event

Depending on the type of event you select, you will have to provide values for some properties.

But the system will overwrite some of these.

The following sample code generates a VmRegisteredEvent

$event = New-Object VMware.Vim.VmRegisteredEvent

$event.Key = Get-Random

$event.ChainId = Get-Random

$event.CreatedTime = Get-Date

$event.UserName = 'domain\anyuser'

$event.Vm = New-Object VMware.Vim.VmEventArgument

$event.Vm.Name = 'AnyVM'

$event.Vm.Vm = (Get-VM -Name VM1).ExtensionData.MoRef

$event.Host = New-Object VMware.Vim.HostEventArgument

$event.Host.Host = (Get-VMHost -Name esx1*).ExtensionData.MoRef

$event.Host.Name = 'AnyEsxi'

$evtMgr.PostEvent($event,$null)


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

Pcliba
Contributor
Contributor
Jump to solution

Thanks Luc! That's what I was looking for.

0 Kudos