如何正确格式化组合两个Get-Azure cmdlet生成的输出?

时间:2015-07-06 14:00:14

标签: powershell azure

我从(Get-AzureVM)获取Name属性,从(Get-AzureSubscription -Current)获取SubscriptionName属性并将它们放入文本文件中。我试图让每个VM都在他们自己的行上,但由于某种原因,我最终得到了{vm1,vm2,vm3,vm4 ...}。当有超过4个对象时,它不会换行并执行'...'。如何让它显示这样的输出?

  

vm1 Subscription1

     

vm2 Subscription1

     

vm3 Subscription1

到目前为止,这是我的脚本:

cd C:\PowerShellThings
$machine = Get-AzureVM
$subscription = Get-AzureSubscription -Current
$props = @{
VMHostName  = $machine.Name
Subscription  = $subscription.SubscriptionName
    }
New-Object PSObject -Property $props | select VMHostName,Subscription | ft -HideTableHeaders -Wrap | Out-File VM-Subs2.txt -Append -NoClobber

1 个答案:

答案 0 :(得分:1)

不要用PS对象过度复杂化,尝试这些方法。

$VMs = Get-AzureVM
$subscription = Get-AzureSubscription -Current
ForEach ($VM in $VMs) {
   "$($VM.Name): $($Subscription.SubscriptionName)" | out-file .\output.txt -append
}