Powershell select 语句

Powershell select statement

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 "|"}

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

如果您想包含一个 固定值 作为 属性 由
输出的自定义对象的 属性 Select-Object cmdlet (select is a built-in alias), you must use a :

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

相比之下,单独使用 $subscription.Name 被解释为 属性 的名称以访问接收到的每个输入对象.