可启动设备的序列号
Serial Number of Bootable device
我必须获取安装我的操作系统的磁盘的序列号。
我知道为了获得序列号我需要 运行:
>wmic diskdrive get serialnumber,capabilities
Capabilities SerialNumber
{3, 4} AI92NXXXXXXXX2G02
{3, 4, 7} 1172XXXXXX030
没有属性可以检查 OS 是否安装在此磁盘上。
开始使用 wmic partition where Bootable=True
,然后返回到 Win32_DiskDrive
(一种可能的方法):
@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion
for /F "delims=" %%G in ('
wmic path Win32_DiskPartition where "Bootable=True" get DeviceID /Value
') do (
for /F "tokens=1* delims==" %%g in ("%%G") do (
set "_DiskPartition=%%h"
REM ECHO set "_DiskPartition=%%h"
call :GetDiskDriveIdAndOutput
)
)
echo Possibly no linkage to a logical disk:
2>NUL wmic path Win32_LogicalDisk ^
ASSOC /RESULTROLE:Antecedent ^
/ASSOCCLASS:Win32_LogicalDiskToPartition ^
/RESULTCLASS:Win32_DiskPartition
ENDLOCAL
goto :eof
:GetDiskDriveIdAndOutput
for /F tokens^=^2^ delims^=^" %%B in ('
wmic path Win32_DiskPartition where "Bootable=True" ASSOC /ASSOCCLASS:Win32_DiskDriveToDiskPartition
') do (
if NOT "%%B"=="%_DiskPartition%" (
REM ECHO set "_DiskDriveId=%%B"
set "_DiskDriveId=%%B"
)
)
echo Bootable: Drive = "%_DiskDriveId:\=\%", Partition = "%_DiskPartition%"
wmic path Win32_DiskDrive get Capabilities,DeviceId,SerialNumber
REM wmic path Win32_DiskDrive Where "DeviceId='%_DiskDriveId%'" get Capabilities,DeviceId,SerialNumber
goto :eof
当然可以实际输出
Bootable: Drive = "\.\PHYSICALDRIVE0", Partition = "Disk #0, Partition #0"
Capabilities DeviceID SerialNumber
{3, 4} \.\PHYSICALDRIVE0 NXXXXXXXXK4R2DT
{3, 4, 7} \.\PHYSICALDRIVE1 S0NFJNXXXXXXXX
类似于
Capabilities DeviceID SerialNumber Bootable
{3, 4} \.\PHYSICALDRIVE0 NXXXXXXXXK4R2DT True
{3, 4, 7} \.\PHYSICALDRIVE1 S0NFJNXXXXXXXX
我必须获取安装我的操作系统的磁盘的序列号。
我知道为了获得序列号我需要 运行:
>wmic diskdrive get serialnumber,capabilities
Capabilities SerialNumber
{3, 4} AI92NXXXXXXXX2G02
{3, 4, 7} 1172XXXXXX030
没有属性可以检查 OS 是否安装在此磁盘上。
开始使用 wmic partition where Bootable=True
,然后返回到 Win32_DiskDrive
(一种可能的方法):
@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion
for /F "delims=" %%G in ('
wmic path Win32_DiskPartition where "Bootable=True" get DeviceID /Value
') do (
for /F "tokens=1* delims==" %%g in ("%%G") do (
set "_DiskPartition=%%h"
REM ECHO set "_DiskPartition=%%h"
call :GetDiskDriveIdAndOutput
)
)
echo Possibly no linkage to a logical disk:
2>NUL wmic path Win32_LogicalDisk ^
ASSOC /RESULTROLE:Antecedent ^
/ASSOCCLASS:Win32_LogicalDiskToPartition ^
/RESULTCLASS:Win32_DiskPartition
ENDLOCAL
goto :eof
:GetDiskDriveIdAndOutput
for /F tokens^=^2^ delims^=^" %%B in ('
wmic path Win32_DiskPartition where "Bootable=True" ASSOC /ASSOCCLASS:Win32_DiskDriveToDiskPartition
') do (
if NOT "%%B"=="%_DiskPartition%" (
REM ECHO set "_DiskDriveId=%%B"
set "_DiskDriveId=%%B"
)
)
echo Bootable: Drive = "%_DiskDriveId:\=\%", Partition = "%_DiskPartition%"
wmic path Win32_DiskDrive get Capabilities,DeviceId,SerialNumber
REM wmic path Win32_DiskDrive Where "DeviceId='%_DiskDriveId%'" get Capabilities,DeviceId,SerialNumber
goto :eof
当然可以实际输出
Bootable: Drive = "\.\PHYSICALDRIVE0", Partition = "Disk #0, Partition #0"
Capabilities DeviceID SerialNumber
{3, 4} \.\PHYSICALDRIVE0 NXXXXXXXXK4R2DT
{3, 4, 7} \.\PHYSICALDRIVE1 S0NFJNXXXXXXXX
类似于
Capabilities DeviceID SerialNumber Bootable
{3, 4} \.\PHYSICALDRIVE0 NXXXXXXXXK4R2DT True
{3, 4, 7} \.\PHYSICALDRIVE1 S0NFJNXXXXXXXX