Как получить серийный номер жесткого диска в качестве переменной из командной строки на базе 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
)