[英]How to export LocalNetworkGateway info from multiple ResourceGroups but also across multiple subscriptions
[英]How to export VMData from azure across multiple subscriptions
我已經可以使用以下代碼從單個Azure訂閱中導出VMData。
$VMs = Get-AzVM
$vmOutput = $VMs | ForEach-Object {
[PSCustomObject]@{
"VM Name" = $_.Name
"VM Profile" = $_.HardwareProfile.VmSize
"VM Type" = $_.StorageProfile.osDisk.osType
"VM Location" = $_.Location
"VM Resource Group Name" = $_.ResourceGroupName -join ','
}
}
$vmOutput | export-csv C:\Azure\VMdata.csv -delimiter ";" -force -notypeinformation
但是,使用下面的代碼嘗試從多個訂閱中提取內容時,沒有任何結果。
$azuresubs = Get-AzSubscription
$azureSubs.foreach{
Select-AzSubscription $_
$VMs = Get-AzVM
$vmOutput = $VMs | ForEach-Object {
[PSCustomObject]@{
"VM Name" = $_.Name
"VM Profile" = $_.HardwareProfile.VmSize
"VM Type" = $_.StorageProfile.osDisk.osType
"VM Location" = $_.Location
"VM Resource Group Name" = $_.ResourceGroupName -join ','
}
}
}
$vmOutput | export-csv C:\Azure\VMdata.csv -delimiter ";" -force -notypeinformation
作為Powershell的新手,我敢肯定上面的語法是不正確的,因此我們將不勝感激。
謝謝
我認為這里發生的事情是您在每次通過時都覆蓋了變量(而最后一次通過恰好沒有vms)。 因此您需要附加它,而不是覆蓋它。 在循環之前定義它:
$vmOutput = @()
然后在循環內附加到它
$vmOutput += $Vms | bla-bla-bla
最后:
$vmOutput = @()
$azuresubs = Get-AzSubscription
$azureSubs.foreach{
Select-AzSubscription $_
$VMs = Get-AzVM
$vmOutput += $VMs | ForEach-Object {
[PSCustomObject]@{
xxx
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.