You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell查询Azure虚拟机的磁盘类型(SSD/HDD)

如何用PowerShell查询Azure虚拟机的磁盘类型(SSD/HDD)

嘿,我完全懂你的困扰——从VM对象的StorageProfile.OsDisk里确实看不到直接的SSD/HDD标识,因为磁盘的类型信息是存在托管磁盘的SKU属性里的,而VM对象本身只存储了磁盘的关联ID,没有包含完整的磁盘属性。下面我给你一步步讲怎么获取这个信息:

核心思路

VM的StorageProfile里的磁盘对象只包含了托管磁盘的Resource ID,我们需要通过这个ID单独调用Get-AzDisk命令来获取磁盘的完整信息,其中的Sku.Name字段就包含了磁盘类型的关键信息。

具体操作步骤

1. 获取目标VM对象

首先用Get-AzVM拿到你要查询的虚拟机对象:

$azureVM = Get-AzVM -ResourceGroupName "你的资源组名称" -Name "你的虚拟机名称"

2. 提取OS磁盘的Resource ID

从VM的StorageProfile里取出OS磁盘的托管磁盘ID:

$osDiskResourceId = $azureVM.StorageProfile.OsDisk.ManagedDisk.Id

3. 查询OS磁盘的完整信息并判断类型

用Get-AzDisk根据ID获取磁盘对象,然后通过Sku.Name判断是SSD还是HDD:

$osDisk = Get-AzDisk -ResourceId $osDiskResourceId

# 输出磁盘名称和类型
Write-Host "OS磁盘名称:$($osDisk.Name)"
Write-Host "磁盘类型:" $(
    if ($osDisk.Sku.Name -match "SSD") {
        "SSD"
    } elseif ($osDisk.Sku.Name -eq "Standard_LRS") {
        "HDD"
    } else {
        "未知类型(可能是Ultra Disk等特殊类型)"
    }
)

4. 批量查询数据磁盘的类型

如果你的VM有数据磁盘,也可以用同样的方法遍历查询:

foreach ($dataDisk in $azureVM.StorageProfile.DataDisks) {
    $dataDiskResourceId = $dataDisk.ManagedDisk.Id
    $disk = Get-AzDisk -ResourceId $dataDiskResourceId
    
    Write-Host "`n数据磁盘名称:$($disk.Name)"
    Write-Host "磁盘类型:" $(
        switch -Wildcard ($disk.Sku.Name) {
            "*SSD*" { "SSD" }
            "Standard_LRS" { "HDD" }
            default { "特殊磁盘类型" }
        }
    )
}

完整脚本示例

把上面的步骤整合起来,一个可以直接运行的脚本:

# 配置你的资源组和VM名称
$resourceGroupName = "MyResourceGroup"
$vmName = "MyVM"

# 获取VM对象
$azureVM = Get-AzVM -ResourceGroupName $resourceGroupName -Name $vmName

# 处理OS磁盘
$osDiskId = $azureVM.StorageProfile.OsDisk.ManagedDisk.Id
$osDisk = Get-AzDisk -ResourceId $osDiskId
Write-Host "=== OS 磁盘信息 ==="
Write-Host "名称:$($osDisk.Name)"
Write-Host "类型:" $(
    switch ($osDisk.Sku.Name) {
        "Standard_LRS" { "HDD(标准)" }
        "StandardSSD_LRS" { "SSD(标准)" }
        "Premium_LRS" { "SSD(高级)" }
        "UltraSSD_LRS" { "SSD(Ultra)" }
        default { "其他类型:$($osDisk.Sku.Name)" }
    }
)

# 处理数据磁盘
if ($azureVM.StorageProfile.DataDisks.Count -gt 0) {
    Write-Host "`n=== 数据磁盘信息 ==="
    foreach ($dataDisk in $azureVM.StorageProfile.DataDisks) {
        $disk = Get-AzDisk -ResourceId $dataDisk.ManagedDisk.Id
        Write-Host "`n名称:$($disk.Name)"
        Write-Host "类型:" $(
            switch ($disk.Sku.Name) {
                "Standard_LRS" { "HDD(标准)" }
                "StandardSSD_LRS" { "SSD(标准)" }
                "Premium_LRS" { "SSD(高级)" }
                "UltraSSD_LRS" { "SSD(Ultra)" }
                default { "其他类型:$($disk.Sku.Name)" }
            }
        )
    }
}

补充说明:Azure磁盘SKU对应关系

Azure托管磁盘的SKU名称直接对应磁盘类型:

  • Standard_LRS:标准HDD磁盘
  • StandardSSD_LRS:标准SSD磁盘
  • Premium_LRS:高级SSD磁盘(用于需要高性能的场景)
  • UltraSSD_LRS:Ultra SSD磁盘(低延迟、高IOPS的场景)

内容的提问来源于stack exchange,提问作者Xrk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:25:27