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

如何修改PowerShell代码同时获取USB磁盘的deviceID与对应盘符?

解决方法

你可以通过在遍历每个USB磁盘时保留原始的DeviceID,再关联获取对应的盘符,最后输出包含这两个属性的自定义对象,就能得到目标格式的结果。

修改后的代码(基于WMI)

Get-WmiObject Win32_DiskDrive | Where-Object { $_.InterfaceType -eq "USB" } | ForEach-Object {
    $diskDeviceId = $_.DeviceID
    # 获取当前磁盘关联的分区
    $partitions = Get-WmiObject -Query "ASSOCIATORS OF {Win32_DiskDrive.DeviceID=`"$($diskDeviceId.replace('\','\\'))`"} WHERE AssocClass = Win32_DiskDriveToDiskPartition"
    # 遍历分区获取对应盘符
    foreach ($partition in $partitions) {
        $logicalDisks = Get-WmiObject -Query "ASSOCIATORS OF {Win32_DiskPartition.DeviceID=`"$($partition.DeviceID)`"} WHERE AssocClass = Win32_LogicalDiskToPartition"
        foreach ($disk in $logicalDisks) {
            # 输出包含磁盘ID和盘符的自定义对象
            [PSCustomObject]@{
                deviceID     = $diskDeviceId
                driveLetter  = $disk.DeviceID
            }
        }
    }
} | Format-Table -AutoSize

更推荐的CIM版本(PowerShell 5.1+)

Get-WmiObject已被标记为过时,使用Get-CimInstance和Get-CimAssociatedInstance更简洁可靠:

Get-CimInstance Win32_DiskDrive | Where-Object { $_.InterfaceType -eq "USB" } | ForEach-Object {
    $diskDeviceId = $_.DeviceID
    # 关联获取磁盘分区
    $partitions = Get-CimAssociatedInstance -InputObject $_ -Association Win32_DiskDriveToDiskPartition
    foreach ($partition in $partitions) {
        # 关联获取分区对应的逻辑盘符
        $logicalDisks = Get-CimAssociatedInstance -InputObject $partition -Association Win32_LogicalDiskToPartition
        foreach ($disk in $logicalDisks) {
            [PSCustomObject]@{
                deviceID     = $diskDeviceId
                driveLetter  = $disk.DeviceID
            }
        }
    }
} | Format-Table -AutoSize

代码说明

  1. 先筛选出所有USB接口的磁盘,将每个磁盘的DeviceID存入变量,避免后续管道操作丢失该值
  2. 依次通过关联类获取磁盘对应的分区、分区对应的逻辑盘符
  3. 每找到一对磁盘ID和盘符,就生成一个包含这两个属性的自定义对象
  4. 最后用Format-Table -AutoSize格式化输出,让列对齐更美观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:03:40