Powershell将列出具有存储帐户名的Azure VM

Powershell将列出具有存储帐户名的Azure VM,powershell,azure-vm-role,azure-storage-account,Powershell,Azure Vm Role,Azure Storage Account,我需要有关列出订阅中所有Azure Virtual计算机及其关联存储帐户名称的帮助 我已尝试以下命令,但未获得预期的输出: Get-Azurermvm | Ft vmname,storageaccount,location 下面的脚本将为您提供VM名称以及资源组名称、订阅名称、磁盘名称、磁盘类型和与其关联的存储帐户 Login-AzureRmAccount $subscription=Get-AzureRmSubscription | select SubscriptionName -Ex

我需要有关列出订阅中所有Azure Virtual计算机及其关联存储帐户名称的帮助

我已尝试以下命令,但未获得预期的输出:

Get-Azurermvm | Ft vmname,storageaccount,location

下面的脚本将为您提供VM名称以及资源组名称、订阅名称、磁盘名称、磁盘类型和与其关联的存储帐户

Login-AzureRmAccount 

$subscription=Get-AzureRmSubscription | select SubscriptionName -ExpandProperty SubscriptionName

foreach($sub in $subscription)
{

Select-AzureRmSubscription -SubscriptionName $sub

$StroageAccDetail = Get-AzureRmStorageAccount

$vmstatus=Get-AzurermVM -Status  

foreach ($vmdetails in $vmstatus)
{
$ResourceGroupName=$vmdetails.ResourceGroupName
$VMName=$vmdetails.name
$storage=$vmdetails.StorageProfile.OsDisk.Vhd.Uri
$DataDiks=$vmdetails.StorageProfile.OsDisk.Name
$ss=$storage.split('/')[2]

$OSStorageAccountName=$ss.split('.')[0]
$DiskType="OSDisk"
$StroageAccountLocation=($StroageAccDetail | where  {$_.StorageAccountName -eq $OSStorageAccountName }).location
$StorageAccountType=($StroageAccDetail | where  {$_.StorageAccountName -eq $OSStorageAccountName }).AccountType
"$sub,$ResourceGroupName,$VMName,$DataDiks,$DiskType,$OSStorageAccountName" | Out-File $OutFile -Append
$vmdatadisks=$vmdetails.StorageProfile.DataDisks

if($vmdatadisks -ne $null){
foreach($vmDatadsik in $vmdatadisks)
{
$vmDatadsikss=$vmDatadsik.vhd.uri
$DiskType="DataDisk"
$ss=$vmDatadsikss.split('/')[2]
$DataDiks=$vmDatadsik.Name
$dataStorageAccountName=$ss.split('.')[0]
"$sub,$ResourceGroupName,$VMName,$DataDiks,$DiskType,$dataStorageAccountName" | Out-File $OutFile -Append
}
}
}
}