Try{Get-AzSubscription > Out-Null}
Catch{
Try{Get-Module -ListAvailable -Name AZ.compute}
Catch{
Write-Host "Azure module does not exist, installing, importing, and connecting" -ForegroundColor Cyan
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-Module Az -Repository PSGallery -Force
}
Finally{
Import-Module AZ
Write-Verbose "Enter your Azure Admin Account creds" -ForegroundColor Cyan
Connect-AzAccount
Set-AzContext -Subscription "fe95db19-b91b-4492-990e-8c7c9ac355a4"
}
}
Finally{
Write-Host "You are connected to Azure" -ForegroundColor Cyan
}
#Get All VMs
$VMs = Get-AZVM
#Go through each VM one at a time
ForEach($VM in $VMs){
$VM.StorageProfile.OsDisk | Select Name,ManagedDisk
$VM.StorageProfile.DataDisks | Select Name,ManagedDisk
}
8条答案
按热度按时间yvt65v4c1#
我们可以使用PowerShell列出Azure VM的信息。
以下是非托管磁盘虚拟机输出:
以下是托管磁盘虚拟机输出:
另一种方法是,我们可以使用Azure新门户检查自动化脚本以找到它:
ao218c7q2#
Azure门户的其他区域也提供了此信息。请转到门户中的“虚拟机”列表,单击"列“按钮,然后添加名为“使用托管磁盘”的列。
jqjz2hbq3#
要补充Jason Ye的答案,您还可以在Azure CLI 2.0中运行类似的命令。该命令为:
非托管磁盘的输出为:
对于托管磁盘:
eiee3dmh4#
如果寻找操作系统磁盘,这将工作。可以国防部的数据磁盘。
7d7tgy0s5#
与Scottge的answer类似,但如果您只是转到VM〉Disks〉select the disk,它会打开一个显示磁盘信息的刀片。在该刀片的顶部,如果磁盘未被管理,则在磁盘名称后显示“(unmanaged)”。如果磁盘被管理,则不显示任何内容。
e4yzc0pl6#
这里是我发现的一种方法,请按照以下步骤确定磁盘类型:
非托管磁盘的URL如下所示:
/storage_account_name.blob.core.windows.net/VM_name/VM_name.vhd
托管磁盘的URL如下所示:
/subscriptions/0cbded86-6088-430c-a320-xxxxxxxxxxxx/resourceGroups/Resource_Group_name/providers/Microsoft.Compute/disks/Disk_name
atmip9wb7#
这个帖子已经有几年的历史了,但是我已经找到了一个更好的方法来使用Powershell一次检查所有的磁盘。微软刚刚发邮件说他们将在2年内淘汰非托管磁盘,所以希望这能在那之前帮助到其他人!
这将尝试连接到Azure,安装模块(如果需要),获取你的所有虚拟机,并列出磁盘名称和ManagedDisk字段。如果你有很多虚拟机,我建议添加一个筛选器,以便仅在ManagedDisk字段为空时显示。
kuuvgm7e8#
它显示在虚拟机JSON预览中,也显示在osDisk下