Как получить серийный номер жесткого диска в качестве переменной из командной строки на базе Windows NT (особенно для Windows XP и 7)? Я смотрю на серийный номер физического жесткого диска
Как получить серийный номер жесткого диска в качестве переменной из командной строки на базе Windows NT (особенно для Windows XP и 7)? Я смотрю на серийный номер физического жесткого диска
Ответы:
том С:
это получит серийный номер тома, данный ему windows.
wmic diskdrive получает серийный номер
он получает серийный номер производителя жесткого диска.
wmic diskdrive get serialnumberя получаю сообщение Invalid XML. Что это означает?
wmic diskdrive get serialnumber.
Invalid XMLбыло связано с подключением более одного диска и Invalid queryпроизошло, потому что я был на Windows XP. См. Этот ответ для обеих проблем: stackoverflow.com/questions/9287450/…
wmic diskdrive get serialnumber(и Win32_DiskDriveкласс WMI в целом) возвращает серийный номер с каждой парой символов в обратном порядке. Поэтому, если на этикетке вашего жесткого диска указано «abcd1234», WMI сообщит ваш серийный номер как «badc2143». Больше информации здесь .
То, что вы смотрите, это не серийный номер жесткого диска.
Он называется серийным номером тома . Он генерируется во время создания и форматирования тома / раздела.
Вы можете получить его с помощью команды в командной строке: C:\> vol c:если C:это диск, для которого вы хотите получить серийный номер тома.
Все, что вы можете сделать, это перенаправить вывод этой команды в файл, C:\> vol c: > myvol.txtи он будет сохранен в виде текстового файла в вашемC:
Я прилагаю скриншот с основными моментами:

C: 
myvol.txtфайл выглядит в блокноте: 
В том же духе, что и ответ Моава, но на этот раз с помощью PowerShell:
Get-CimInstance Win32_DiskDrive | Select-Object Model,SerialNumber
Эта команда получает экземпляр Win32_DiskDriveкласса WMI и выводит модель каждого диска в компьютере и соответствующий ему серийный номер из этого экземпляра.
Этот ответ предполагает использование PowerShell 3.0 или более поздней версии. Если вы используете более старую версию, используйте Get-WmiObjectвместо Get-CimInstance.
В Windows 8 и более поздних версиях вы также можете использовать эту команду:
Get-PhysicalDisk | Select-Object FriendlyName,SerialNumber
В пакетном файле один из подходов:
for /f "tokens=5 delims= " %%a in ('vol c: ^| Find "Serial Number"') do (
set VOLSERIAL=%%a
)