Hello-
Good, glad it worked out for you.
As for "how to know how to check a property?" -- in general, it is a matter of knowing what type of object you are dealing with, and then finding out what properties that object has, so that you can know how to act on the object (by filtering in a Where-Object statement in this case).
So, specifically, since you knew that you were looking for a certain value in a MessageInfo property of an object returned by Get-VIEvent, it was time to check out the vSphere API reference. Going to the "All Properties" node there, you can then find the MessageInfo property, and that it is a property of three types of VmEvent objects.
The docs show that the MessageInfo property is of type VirtualMachineMessage, and that it can be zero or more such values (the asterisk shows that the property need not be set, and the square brackets after the type show that it can be an array -- so, zero or more). A bit of inspection of an actual VmEvent object returned by Get-VIEvent (just grabbed a few VmEvent objects to look at them) shows that it is the id field that held the kinds of strings with which you were wanting to filter (the "msg.svgaUI.badLimits" string).
Make sense?