You can create a custom property by writing a script and providing a name for the property. The script evaluates when the custom property is called for first time.

Connect to a vSphere server.


Create a new custom property named NameOfHost that stores the name of the host on which a virtual machine resides.

New-VIProperty -Name NameOfHost -ObjectType VirtualMachine -Value { return $args[0].VMHost.Name }

View the NameOfHost properties of the available virtual machines.

Get-VM | select Name, NameOfHost | Format-Table -AutoSize

You created a custom script property named NameOfHost for VirtualMachine objects.