Hi Guys
How can I retrieve the values of custom attributes for a VM?
below command gives me the name and target type but not the values
PS C:\> Get-CustomAttribute
Key Name TargetType
--- ---- ----------
1001 Backup Status VirtualMachine
2 Hardened VirtualMachine
101 Last Backup VirtualMachine
601 SRM-com.vmware.vc...
Can you please help me to get these custom attributes values??
I thank you in advance for your help.
Regards
Raj
Use the Get-Annotation cmdlet.
$caName = 'MyCA'
$ca = Get-CustomAttribute -Name $caName
Get-VM | Get-Annotation -CustomAttribute $ca
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
Hi LucD,
Thanks for pointing me into the right direction.. I have done this:
$Values = read-host 'Enter Attribute'
$VM = read-host 'Enter Virtual Machine'
foreach ($value in (read-host 'Enter Attribute') ){Get-VM (read-host 'Enter Virtual Machine') | Get-Annotation -CustomAttribute (Get-CustomAttribute -Name $value)}
When I run this it ask for Attribute value and VM name like below
Enter Attribute: Hardened
Enter Virtual Machine: VM Name
AnnotatedEntity Name Value
--------------- ---- -----
VM Name Hardened Profile 2 Applied 02/06/2021
But when I enter multiple attributes it don't like it.
Is there anyway I can use this for all the attributes I need rather than doing one by one? Hardened, Backup Status, Last Backup, SRM-com.vmware.vcDr:::protected
Thanks in advance for your help!!!
Raj
little more modification..
$VM = 'VM Name'
foreach ($value in @('Hardened','Backup Status','Last Backup','SRM-com.vmware.vcDr:::protected') ){Get-VM $VM | Get-Annotation -CustomAttribute (Get-CustomAttribute -Name $value)}
AnnotatedEntity Name Value
--------------- ---- -----
VM Name Hardened Profile 2 Applied 02/06/2021
VM Name Backup Status Backup Job ID [116255351] Client: [vCentre-In-...
VM Name Last Backup 8/4/2021 11:22:03 PM
VM Name SRM-com.vmware.vc... vm-1418908
Any advise on this and how can I more improve this will be greatly appriciated.
thanks,
You could do something like this
$vmName = Read-Host 'Enter Virtual Machine'
$caNames = Read-Host 'Enter Attribute (comma separated'
Get-VM -Name $vmName |
Get-Annotation -CustomAttribute (Get-CustomAttribute -Name $caNames.Split(',')) |
Select-Object @{N='VM';E={$_.AnnotatedEntity.Name}},Name,Value
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference