Powershell выберите заявление
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, но показывает ли она это в заголовке таблицы?
1 ответ
Решение
Если вы хотите включить фиксированное значение в качестве свойства пользовательских объектов, выводимыхSelect-Object
командлет (select
является встроенным псевдонимом), вы должны использовать вычисляемое свойство:
... | Select-Object @{ n='SubscriptionName'; e={ $subscription.Name } },
ResourceGroupName,
Name,
PowerState | ...
В отличие от использования $subscription.Name
само по себе интерпретируется как имя свойства для доступа к каждому полученному входному объекту.