Как получить серийный номер жесткого диска, на котором я работаю?

2696
Daril Alemán

Для получения серийного номера всех жестких дисков на моем компьютере я использую:

wmic diskdrive get serialnumber 

Но я хочу получить серийный номер жесткого диска, на котором я работаю.

Объясняю: у меня есть 2 жестких диска, один из них имеет 2 раздела C и D. У другого есть один раздел E. С помощью командной строки, если я работаю в разделе C, когда я набираю wmicкоманду, я хочу получить только серийный номер жесткого диска с этим разделом, а не серийный номер жесткого диска с разделом Е.

Я хочу сделать лицензионный код для моего программного обеспечения. Вы можете установить программное обеспечение в любом разделе. Я хочу, чтобы серийный номер жесткого диска, который содержит эти разделы указанно. серийный номер тома раздела изменяется при форматировании, переустановке и т. д., но серийный номер жесткого диска отсутствует. я знаю, что есть программное обеспечение для изменения серийного номера, но мои возможные клиенты не такие умные.

0

2 ответа на вопрос

1
Daril Alemán

Спасибо всем за ваши ответы. Я нашел ответ, который мне нужен, здесь я делюсь им с вами. Команда находится в powershell:

Get-Disk (Get-Partition -DriveLetter 'C').DiskNumber 

Вывод примерно такой:

Number Friendly Name Serial Number HealthStatus OperationalStatus Total Size Partition Style ------ ------------- --------------------------------------------------  0 ST3802110AS 5LR2DQ65 Healthy Online 74.53 GB MBR 
0
Narzard

Вот сценарий Powershell, который я сделал и который, надеюсь, сделает то, что вы хотите.

  1. Открыть Powershell
  2. Скопируйте и вставьте это:
$volumes = get-wmiobject Win32_Volume foreach ($vol in $volumes)  { if($vol.Caption -eq 'c:\') { $vol | fl Caption,Name,DeviceID,SerialNumber  } } pause 

Это должно дать вам то, что вы хотите по отношению к диску C: \. Если вам нужна другая буква диска, просто измените ее в приведенном выше сценарии на 4-й строке, где написаноc:\

Выход будет выглядеть следующим образом :

Caption : C:\ Name : C:\ DeviceID : \\?\Volume\ SerialNumber : 3469401274 

Примечание : если вы хотите получить всю доступную информацию о диске, а не только эти 4 вещи, вы можете удалить их | fl Caption,Name,DeviceID,SerialNumberиз вышеприведенного и просто оставить $volв этой строке.

Этот ответ мне не помогает, потому что этот скрипт возвращает серийный номер, который отличается от последовательного жесткого диска. Другой способ сфокусировать мой вопрос - какие разделы принадлежат конкретному диску. Существует команда `wmic diskdrive get partitions`, которая возвращает количество разделов всех жестких дисков. Если бы была команда, позволяющая мне получить имена разделов (C, D и т. Д.) Каждого диска, было бы здорово Daril Alemán 6 лет назад 0
Вы должны знать, что не существует гарантированного способа получить какие-либо аппаратные серийные номера на современных ПК. Раньше у процессоров Intel Pentium II были опции BIOS для включения серийных номеров процессоров, однако злоумышленники использовали это для отслеживания вас, Intel полностью отключила его, а также МНОГИЕ другие производители HW. На самом деле, у меня есть новый накопитель Samsung NVMe, который всегда возвращает все нули для своего серийного номера. ttaylor1218 6 лет назад 0
Также просто мысль, но, может быть, хэш против CPUID вместо вашего лицензионного ключа? Narzard 6 лет назад 0
@ DarilAlemán [Поиск букв разделов на физических дисках с помощью wmic] (// superuser.com/q/634842) DavidPostill 6 лет назад 0