3
forEach($subscription in Get-AzureRmSubscription) {
Select-AzureRmSubscription -SubscriptionId $subscription.Id | Out-Null
Get-AzurermVM -Status | select $subscription.Name, ResourceGroupName, Name, 
PowerState | ConvertTo-Csv -NoTypeInformation -Delimiter "|"}

我正在尝试返回此查询的结果,但结果中不包含订阅名称。它显示在表头中,但不在结果的每一行中。它应该在每一行上显示,但每一行的第一列是空白的。我猜这与订阅变量不属于 -Status 属性有关,但它显示在表头中?

4

1 回答 1

3

如果要包含一个固定值作为
Select-Objectcmdlet输出的自定义对象的属性(select是内置别名),则必须使用计算属性

... | Select-Object @{ n='SubscriptionName'; e={ $subscription.Name } }, 
                    ResourceGroupName, 
                    Name, 
                    PowerState | ...

相比之下, using$subscription.Name 本身被解释为要在收到的每个输入对象上访问的属性的名称

于 2018-07-26T23:15:06.973 回答