如何检索超过 1 个 CSV 注释

How to retrieve more than 1 annotation to CSV

我正在尝试使用 Get-annotations 创建一个报告来检索一些自定义值,实际上它工作正常,但我只能在同一行的报告中插入 1 个值,下面是我所做的只有 1 个值,是否有一些语法不像这样使用 Get-Annotation -Name value1, value2, value3

$AW= foreach ($vmsowner in $VMsOwners)
{
    $VMlisted = $vmsowner.objectname
    get-vm $VMlisted | Get-Annotation -Name  "Application Owner"| select @{label="VM";expression={$_.AnnotatedEntity}}, @{label="Application Owner";expression={$_.Value}}
}
$AW | ConvertTo-Csv -NoTypeInformation | Out-File  -FilePath $FilenameOwners

调用 Get-Annotation 计算的 属性 表达式中:

Get-VM |Select @{Name='VM';Expression={$_}},@{Name='Application Owner';Expression={($_ |Get-Annotation -Name 'Application Owner').Value}},,@{Name='Some other tag';Expression={($_ |Get-Annotation -Name 'Some other tag').Value}}

它可能很快变得无法阅读所有这些计算的 属性 定义,但您可以从注释名称列表中生成它们:

# define annotations your want to retrieve per vm
$annotations = 'Application Owner', 'Data Owner', 'Some other tag', 'Something else completely'

# generate calculated property definitions
$properties = @(
    @{Name='VM';Expression={$_}}
    $annotations |ForEach-Object {
        $annotationName = $_
        @{Name=$_;Expression=[scriptblock]::Create("`$(`$_ | Get-Annotation -Name '$_').Value")}
    }
)

# fetch VMs and select properties
Get-VM |Select $properties