您现在的位置是:首页 > 编程 > 

powershell一键三连输出disk instanceid、磁盘序号、盘符

2025-07-27 04:39:43
powershell一键三连输出disk instanceid、磁盘序号、盘符 背景:参考,对mbr转gpt,还要不丢数据,在操作之前先做快照,并记录机器和磁盘的对应关系,以及机器系统内部的disk instanceid、磁盘序号、盘符的对应关系。一句话命令只能显示disk instanceid、磁盘序号,研究了下没有直接的命令可以一键三连输出disk instanceid、磁盘序号、盘符,只能用

powershell一键三连输出disk instanceid、磁盘序号、盘符

背景:参考,对mbr转gpt,还要不丢数据,在操作之前先做快照,并记录机器和磁盘的对应关系,以及机器系统内部的disk instanceid、磁盘序号、盘符的对应关系。

一句话命令只能显示disk instanceid、磁盘序号,研究了下没有直接的命令可以一键三连输出disk instanceid、磁盘序号、盘符,只能用powershell代码段来搞,分享如下:

代码语言:txt复制
# 获取所有磁盘驱动器的信息
$diskDrives = Get-WmiObject -Class Win2_DiskDrive

# 按DeviceID排序磁盘驱动器
$diskDrives = $diskDrives | Sort-Object { [int]($_.DeviceID -replace '^\\\\\.\\PHYSICALDRIVE', '') }

# 遍历所有磁盘驱动器
foreach ($diskDrive in $diskDrives) {
    # 获取DeviceID并切分
    $deviceID = $diskDrive.DeviceID
    $driveumber = $deviceID -replace '^\\\\\.\\PHysICALDRIVE', ''
    $serialumber = $diskDrive.Serialumber

    Write-Output "Disk: $deviceID"
    Write-Output "umber: $driveumber"
    Write-Output "Serial umber: $serialumber"

    # 获取与磁盘$diskDrive关联的所有分区
    $partiti = $diskDrive.GetRelated('Win2_DiskPartition')

    # 遍历每个分区并获取关联的逻辑磁盘
    foreach ($partition in $partiti) {
        # 获取与分区关联的所有逻辑磁盘
        $logicalDisks = $partition.GetRelated('Win2_LogicalDisk')

        # 输出逻辑磁盘的盘符
        if ($logicalDisks) {
            $logicalDisks | Select-Object -ExpandProperty DeviceID
        }
    }
    Write-Output ""
}

效果如下

再深化下代码,把每个盘符的freesize、size显示一下

代码语言:txt复制
# 获取所有磁盘驱动器的信息
$diskDrives = Get-WmiObject -Class Win2_DiskDrive

# 按DeviceID排序磁盘驱动器
$diskDrives = $diskDrives | Sort-Object { [int]($_.DeviceID -replace '^\\\\\.\\PHYSICALDRIVE', '') }

# 遍历所有磁盘驱动器
foreach ($diskDrive in $diskDrives) {
    # 获取DeviceID并切分
    $deviceID = $diskDrive.DeviceID
    $driveumber = $deviceID -replace '^\\\\\.\\PHysICALDRIVE', ''
    $serialumber = $diskDrive.Serialumber

    Write-Output "Disk: $deviceID"
    Write-Output "umber: $driveumber"
    Write-Output "Serial umber: $serialumber"

    # 获取与磁盘$diskDrive关联的所有分区
    $partiti = $diskDrive.GetRelated('Win2_DiskPartition')

    # 遍历每个分区并获取关联的逻辑磁盘
    foreach ($partition in $partiti) {
        # 获取与分区关联的所有逻辑磁盘
        $logicalDisks = $partition.GetRelated('Win2_LogicalDisk')

        # 输出逻辑磁盘的盘符
        if ($logicalDisks) {
            $volumeIDs = $logicalDisks | Select-Object -ExpandProperty DeviceID
            foreach ($volumeID in $volumeIDs) {
                Get-Volume | Where-Object { $_.DriveType -eq "Fixed" -and $_.DriveLetter -match $volumeID.split(":")[0] } | Format-Table -AutoSize
            }
        }
    }
    Write-Output ""
}

代码语言:txt复制
$driveInfo1 =Get-Volume | Where-Object { $_.DriveType -eq "Fixed" -and $_.DriveLetter -match "[A-Z]" } | Sort-Object DriveLetter
$driveInfo2 =Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Free -ge 0 }|ft -auto

$driveInfo1
$driveInfo2

只能显示disk instanceid、磁盘序号的一句话命令也分享如下:

代码语言:txt复制
Get-Disk |ft Serialumber,Diskumber,Size,AllocatedSize,Friendlyame,IsBoot,IsOffline,IsReadOnly,Location,umberOfPartiti -AutoSize
代码语言:txt复制
Get-PhysicalDisk |ft Serialumber,Friendlyame,PhysicalLocation,AllocatedSize,Size -AutoSize
代码语言:txt复制
wmic diskdrive get caption,deviceid,serialnumber
wmic path win2_physicalmedia get Serialumber,Tag

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1237664.html

相关标签:无
上传时间: 2025-07-26 18:29:34
留言与评论(共有 16 条评论)
本站网友 腌雪里蕻
0秒前 发表
")[0] } | Format-Table -AutoSize } } } Write-Output "" }代码语言:txt复制$driveInfo1 =Get-Volume | Where-Object { $_.DriveType -eq "Fixed" -and $_.DriveLetter -match "[A-Z]" } | Sort-Object DriveLetter $driveInfo2 =Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Free -ge 0 }|ft -auto $driveInfo1 $driveInfo2只能显示disk instanceid
本站网友 西昌大火
19分钟前 发表
在操作之前先做快照
本站网友 北京新地铁
11分钟前 发表
磁盘序号
本站网友 限购政策
6分钟前 发表
")[0] } | Format-Table -AutoSize } } } Write-Output "" }代码语言:txt复制$driveInfo1 =Get-Volume | Where-Object { $_.DriveType -eq "Fixed" -and $_.DriveLetter -match "[A-Z]" } | Sort-Object DriveLetter $driveInfo2 =Get-PSDrive -PSProvider FileSystem | Where-Object { $_.Free -ge 0 }|ft -auto $driveInfo1 $driveInfo2只能显示disk instanceid
本站网友 平阳长庚医院
12分钟前 发表
Friendlyame
本站网友 feedingbottle
5分钟前 发表
$driveumber" Write-Output "Serial umber
本站网友 上海商场打折
14分钟前 发表
IsReadOnly
本站网友 halo4
13分钟前 发表
还要不丢数据
本站网友 天空传奇
2分钟前 发表
在操作之前先做快照
本站网友 男生去痘印
27分钟前 发表
deviceid
本站网友 独家
30分钟前 发表
serialnumber wmic path win2_physicalmedia get Serialumber
本站网友 世界网址大全
12分钟前 发表
还要不丢数据
本站网友 齐天大胜
21分钟前 发表
在操作之前先做快照
本站网友 php视频教程下载
13分钟前 发表
Diskumber
本站网友 丝瓜的功效
8分钟前 发表
Friendlyame