如何检索超过 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
我正在尝试使用 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