< Back
New-VIProperty
Post
NAME New-VIProperty
SYNOPSIS
This cmdlet creates a new extension property on the specified object type.
SYNTAX
New-VIProperty [-Name] <String> [-ObjectType] <String[]> [-Value] <ScriptBlock> [-BasedOnExtensionProperty
<String[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]
New-VIProperty [-Name] <String> [-ObjectType] <String[]> [-ValueFromExtensionProperty] <String> [-Force]
[-Confirm] [-WhatIf] [<CommonParameters>]
DESCRIPTION
This cmdlet creates a new extension property on the specified object type. Changes take effect upon the next
retrieval of the corresponding objects.
PARAMETERS
-BasedOnExtensionProperty <String[]>
Specifies a list of strings that maps the properties of the $this.ExtensionData object. Use this parameter to
specify which members of ExtensionData are used by the script block provided for the Value parameter. This
parameter is case-sensitive.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Force [<SwitchParameter>]
Indicates that you want to create the new property even if another property with the same name exists for the
specified object type. This parameter is not applicable for core properties of an object type.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Name <String>
Specifies a name for the new extension property. Names are case-sensitive and can include only letters,
numbers, and the underscore symbol. The name of a property must start with a letter or underscore.
Required? true
Position? 1
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-ObjectType <String[]>
Specifies the object types to which you want to append the new property. All PowerCLI object types are
supported.
Required? true
Position? 2
Default value None
Accept pipeline input? False
Accept wildcard characters? true
-Value <ScriptBlock>
Specifies a script block you want to use to compute the value of the new extended property.
Required? true
Position? 3
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-ValueFromExtensionProperty <String>
Specifies a string that maps a property of the $this.ExtensionData object. This parameter is case-sensitive.
Required? true
Position? 3
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Confirm [<SwitchParameter>]
If the value is $true, indicates that the cmdlet asks for confirmation before running. If the value is $false,
the cmdlet runs without asking for user confirmation.
Required? false
Position? named
Default value $true
Accept pipeline input? False
Accept wildcard characters? false
-WhatIf [<SwitchParameter>]
Indicates that the cmdlet is run only to display the changes that would be made and actually no objects are
modified.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).
INPUTS
OUTPUTS
The newly created VIProperty object
NOTES
In PowerShell 2.0, errors in evaluating values of new properties are not displayed. You can find information
about these errors in the $Error environment variable.
-------------------------- Example 1 --------------------------
New-VIProperty -ObjectType VirtualMachine -Name CommittedSpaceMB -Value { $vm = $args[0]; $sum = 0;
$vm.ExtensionData.Storage.PerDatastoreUsage | foreach { $sum += $_.Committed} ; $sum = [int]($sum / 1024 / 1024);
return $sum }
Get-VM | select Name, CommittedSpaceMB
Creates a script-based property for the VirtualMachine object type that calculates the committed space of a
virtual machine.
-------------------------- Example 2 --------------------------
New-VIProperty -ObjectType VirtualMachine -Name CommittedSpaceMB -Value { $vm = $args[0]; $sum = 0;
$vm.ExtensionData.Storage.PerDatastoreUsage | foreach { $sum += $_.Committed} ; $sum = [int]($sum / 1024 / 1024);
return $sum } -BasedOnExtensionProperty 'Storage.PerDatastoreUsage.Committed' -Force
Get-VM | select Name, CommittedSpaceMB
Creates a property that calculates the committed space of a virtual machine. The cmdlet uses the
BasedOnExtensionProperty parameter to specify which ExtensionData member is used by the script block. This mean
that during the creation of each virtual machine, only the specified property of extension data -
Storage.PerDatastoreUsage.Committed will be filled up.
-------------------------- Example 3 --------------------------
New-VIProperty -ObjectType VirtualMachine -Name CommittedSpace -ValueFromExtensionProperty 'SUM
Storage.PerDatastoreUsage.Committed'
Creates a new property that calculates the committed storage based on the property and aggregation function SUM
specified by the ValueFromExtensionProperty parameter.
-------------------------- Example 4 --------------------------
New-VIProperty -ObjectType InventoryItem -Name OverallStatus -ValueFromExtensionProperty 'OverallStatus'
Get-VM | select Name, OverallStatus
Get-VMHost | select Name, OverallStatus
Creates a new property based on the OverallStatus property for all inventory types.
-------------------------- Example 5 --------------------------
New-VIProperty -ObjectType VIObjectCore -Value { if ( $args[0].UId -match "/VIserver=[\\w]+@(.*):.*" ) {
$matches[1] } else { " } } -Name VIServerName
Get-Inventory | select Name, VIServerName
Creates a script-based property to VIObjectCore that parses the UId property and extracts the name of the server
to which a given object belongs.
RELATED LINKS
Online Version: https://code.vmware.com/doc/preview?id= ... perty.html
Get-VIProperty
Remove-VIProperty
SYNOPSIS
This cmdlet creates a new extension property on the specified object type.
SYNTAX
New-VIProperty [-Name] <String> [-ObjectType] <String[]> [-Value] <ScriptBlock> [-BasedOnExtensionProperty
<String[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]
New-VIProperty [-Name] <String> [-ObjectType] <String[]> [-ValueFromExtensionProperty] <String> [-Force]
[-Confirm] [-WhatIf] [<CommonParameters>]
DESCRIPTION
This cmdlet creates a new extension property on the specified object type. Changes take effect upon the next
retrieval of the corresponding objects.
PARAMETERS
-BasedOnExtensionProperty <String[]>
Specifies a list of strings that maps the properties of the $this.ExtensionData object. Use this parameter to
specify which members of ExtensionData are used by the script block provided for the Value parameter. This
parameter is case-sensitive.
Required? false
Position? named
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Force [<SwitchParameter>]
Indicates that you want to create the new property even if another property with the same name exists for the
specified object type. This parameter is not applicable for core properties of an object type.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Name <String>
Specifies a name for the new extension property. Names are case-sensitive and can include only letters,
numbers, and the underscore symbol. The name of a property must start with a letter or underscore.
Required? true
Position? 1
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-ObjectType <String[]>
Specifies the object types to which you want to append the new property. All PowerCLI object types are
supported.
Required? true
Position? 2
Default value None
Accept pipeline input? False
Accept wildcard characters? true
-Value <ScriptBlock>
Specifies a script block you want to use to compute the value of the new extended property.
Required? true
Position? 3
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-ValueFromExtensionProperty <String>
Specifies a string that maps a property of the $this.ExtensionData object. This parameter is case-sensitive.
Required? true
Position? 3
Default value None
Accept pipeline input? False
Accept wildcard characters? false
-Confirm [<SwitchParameter>]
If the value is $true, indicates that the cmdlet asks for confirmation before running. If the value is $false,
the cmdlet runs without asking for user confirmation.
Required? false
Position? named
Default value $true
Accept pipeline input? False
Accept wildcard characters? false
-WhatIf [<SwitchParameter>]
Indicates that the cmdlet is run only to display the changes that would be made and actually no objects are
modified.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).
INPUTS
OUTPUTS
The newly created VIProperty object
NOTES
In PowerShell 2.0, errors in evaluating values of new properties are not displayed. You can find information
about these errors in the $Error environment variable.
-------------------------- Example 1 --------------------------
New-VIProperty -ObjectType VirtualMachine -Name CommittedSpaceMB -Value { $vm = $args[0]; $sum = 0;
$vm.ExtensionData.Storage.PerDatastoreUsage | foreach { $sum += $_.Committed} ; $sum = [int]($sum / 1024 / 1024);
return $sum }
Get-VM | select Name, CommittedSpaceMB
Creates a script-based property for the VirtualMachine object type that calculates the committed space of a
virtual machine.
-------------------------- Example 2 --------------------------
New-VIProperty -ObjectType VirtualMachine -Name CommittedSpaceMB -Value { $vm = $args[0]; $sum = 0;
$vm.ExtensionData.Storage.PerDatastoreUsage | foreach { $sum += $_.Committed} ; $sum = [int]($sum / 1024 / 1024);
return $sum } -BasedOnExtensionProperty 'Storage.PerDatastoreUsage.Committed' -Force
Get-VM | select Name, CommittedSpaceMB
Creates a property that calculates the committed space of a virtual machine. The cmdlet uses the
BasedOnExtensionProperty parameter to specify which ExtensionData member is used by the script block. This mean
that during the creation of each virtual machine, only the specified property of extension data -
Storage.PerDatastoreUsage.Committed will be filled up.
-------------------------- Example 3 --------------------------
New-VIProperty -ObjectType VirtualMachine -Name CommittedSpace -ValueFromExtensionProperty 'SUM
Storage.PerDatastoreUsage.Committed'
Creates a new property that calculates the committed storage based on the property and aggregation function SUM
specified by the ValueFromExtensionProperty parameter.
-------------------------- Example 4 --------------------------
New-VIProperty -ObjectType InventoryItem -Name OverallStatus -ValueFromExtensionProperty 'OverallStatus'
Get-VM | select Name, OverallStatus
Get-VMHost | select Name, OverallStatus
Creates a new property based on the OverallStatus property for all inventory types.
-------------------------- Example 5 --------------------------
New-VIProperty -ObjectType VIObjectCore -Value { if ( $args[0].UId -match "/VIserver=[\\w]+@(.*):.*" ) {
$matches[1] } else { " } } -Name VIServerName
Get-Inventory | select Name, VIServerName
Creates a script-based property to VIObjectCore that parses the UId property and extracts the name of the server
to which a given object belongs.
RELATED LINKS
Online Version: https://code.vmware.com/doc/preview?id= ... perty.html
Get-VIProperty
Remove-VIProperty