Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.03.27;
Скачать: CL | DM;

Вниз

Как узнать серийный номер процессора и винчестера   Найти похожие ветки 

 
Wadimka   (2009-01-30 14:03) [0]

Подскажите, как узнать серийный номер процессора и винчестера?


 
clickmaker ©   (2009-01-30 14:07) [1]

например, через WMI, классы Win32_Processor и Win32_DiskDrive


 
AllDontFire   (2009-05-05 18:06) [2]

Мне попался пример "WMI.zip", в котором перечисляются все классы со всеми их данными. Так вот в классе Win32_DiskDrive, наверное, есть всё, кроме серийного номера HDD. На одном форуме видел пост, что там серийника быть и не должно, он есть в классе Win32_PhysicalMedia - да, свойство SerialNumber там есть, но в рез. данных только:
instance of Win32_PhysicalMedia {Tag = "\\\\.\\PHYSICALDRIVE0";};

1)Вот пример опредения через \\.\SCSI и IOCTL_SCSI_MINIPORT:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=18102
2)Вот через \\.\PhysicalDrive и Smart. Пример на C++.
http://www.sql.ru/forum/actualthread.aspx?tid=378384

(винт SATA II):
1 - не работает под Win64 и Vista.
2 - не работает под Vista (под админом DoEnableSmart выдаёт "неверная функция")

У кого-нибудь есть рабочие примеры для приведенных случаев?


 
Игорь Шевченко ©   (2009-05-05 19:32) [3]


> У кого-нибудь есть рабочие примеры для приведенных случаев?


у Коншина ?


 
AllDontFire   (2009-05-06 15:56) [4]

http://home.earthlink.net/~akonshin/delphi_ru.htm
В этом сайте есть 4 примера по сабжу, с сожалению, ни один из них не сработал на Win64 и Висте (да и там не сказано что проверялось на 64 бит и Висте).
Пример ScsiSN использует $0004D004 - IOCTL_SCSI_PASS_THROUGH,
но серийного номера там нет. (кстати чтоб это увидеть, нужно переделать пример):  
if DeviceIoControl( DeviceHandle, $0004d004, @sptwb, SizeOfTScsiPassThrough), @sptwb, len, dwReturned, nil )
//and ((PChar(@sptwb.bDataBuf)+1)^=#$80)
 then for i:=0 to 191 do write(sptwb.bDataBuf[i])

В описании  var bDataBuf изменить на char и добавить i:byte.

У меня есть рабочий пример (\\.\PhysicalDrive и Smart под админом) под Win64, но под Vista он не работает (DoEnableSmart выдаёт "неверная функция).

На http://www.astra32.com/ru/ есть программа определяющая серийник под Вистой, так что сабж возможен :-)


 
Nickoss ©   (2009-05-06 17:59) [5]


> в классе Win32_DiskDrive, наверное, есть всё, кроме серийного
> номера HDD


А чего ж нет ? Вот, вроде есть
http://msdn.microsoft.com/en-us/library/aa394132(VS.85).aspx

SerialNumber  string


 
AllDontFire   (2009-05-06 18:25) [6]

Там чуть ниже :-) :

> SerialNumber
>
>     Data type: string
>     Access type: Read-only
>
>     Number allocated by the manufacturer to identify the
> physical media.
>
>     Example: WD-WM3493798728
>
>         Windows Server 2003, Windows XP, Windows 2000, and
> Windows NT 4.0:  This property is not available.


 
Nickoss ©   (2009-05-06 20:43) [7]

Нашел интересный архивчик с демкой по WMI. Серийник винта определяется из под Висты. Исходники прилагаются.

http://www.magsys.co.uk/delphi/magwmi.asp


 
AllDontFire   (2009-05-06 22:56) [8]

Спасибо за пример по WMI, но и он не справился с тем хардом на Висте. И дело, похоже не в Висте. Помню пару лет назад на Висте обычный IDE винт определялся смартом на раз-два.

В общем,  винт c виду обычный Serail Ata.
OS: Ms Windows Vista Home Basic 6.0.6000
В примере определяется как WDC WD25 00AAJS-00VWA SCSI Disk Device (так он называется в диспетчере устройств)
По кнопке “Disk SMART” выдаёт «No SCSI Drive Serial Number Returned». В других местах серийника тоже нет (Ткните пальцем, плиз, если не туда жму).

Что выдаёт Astra32:
Модель м. платы WinFast 6100M2MA
Имя чипсета NVIDIA GeForce 6100/6150/nFoce 500 Family
Чипсет C51 Host Bridge
Южный мост MCP51 LPC Bridge

Hdd:
Model: WDC WD25 00AAJS-00VWA
Interface Type : Serial Ata II
Serial: WD-WM[demo]
Verdor ATA controller: Nvidia
Name ATA controller: MCP51 SATA controller
Location: Tertiary/Master.


Кстати у меня винт на WinXP64bit тоже Serial ATA II, определяется астрой, если просто выбрать «Жёсткий диск», а на той Висте нужно ещё включить “Внешний UDMA/SATA”, хотя винт в корпусе подключен сразу в материнку.


 
brother ©   (2009-05-07 04:17) [9]

> а на той Висте нужно ещё включить “Внешний UDMA/SATA”, хотя
> винт в корпусе подключен сразу в материнку.

может "дрова" коряво встали или не от него?


 
QAZ   (2009-05-07 14:33) [10]

у процесоров нет серийника
а у диска проще всего узнать серийник тома


 
Anatoly Podgoretsky ©   (2009-05-07 16:03) [11]

Задачу то какую решаешь?


 
AllDontFire   (2009-05-07 18:39) [12]

Задача:
Получить серийный номер Hdd и использовать его для защиты ПО.


 
Nickoss ©   (2009-05-07 19:38) [13]

Прога testwmi.


> По кнопке “Disk SMART” выдаёт «No SCSI Drive Serial Number
> Returned»


А что выдает по кнопке "Disk serial (xp)" ?

или по кнопке "Get Class or Query" Win32_PhysicalMedia в разделе SerialNumber.

Кстати, а нельзя ли привязаться к PNPDeviceID из Win32_DiskDrive ? Его легко вытащить и из системного реестра. Только вот насколько он уникальный и неизменяемый.


 
AllDontFire   (2009-05-07 20:06) [14]

"Disk serial (xp)" --NULL
"Get Class or Query" Win32_PhysicalMedia" -- NULL все кроме Tag.


> привязаться к PNPDeviceID

- интересная идея, конечно, но опять же сразу вопросы
> насколько он уникальный и неизменяемый"


Мне, благодаря "Астре", уже хочется найти код для "Внешний UDMA/SATA”.


 
Сергей М. ©   (2009-05-07 20:22) [15]


> обычный IDE винт


> винт c виду обычный Serail Ata


Хрень какая-то ..

Левый глаз видит на винте IDE-разъем, а правый глаз на том же винте видит SATA-разъем ?


 
Nickoss ©   (2009-05-07 20:43) [16]

Попробовал подключить IDE-диск через USB-адаптер - та же картина. testwmi его определяет, но в SerialNumber = NULL. По кнопке "Disk model" пишет ST322413A USB Device, также определяются размер, caption. Всё это из под ХР.

Нашел еще два параметра, ИМХО, уникальных:

Win32_BaseBoard   SerialNumber (15-значный ID).  Номер совпадает с номером на узкой наклейке со штрих-кодом, расположенной справа от разъема питания материнки (Asus P5K-E).

Win32_Processor    ProcessorId (16-значное шестнадцатиричное число).


 
AllDontFire   (2009-05-07 21:01) [17]

Сергей М. ,
это 2 разных HDD.


 
AllDontFire   (2009-05-07 21:11) [18]

Nickoss,
У меня Win32_BaseBoard  SerialNumber выдал "MB-1234567890" для Asus P5B.
ProcessorID более вменяемый правда.


 
DVM ©   (2009-05-08 00:13) [19]


> Nickoss ©   (06.05.09 20:43) [7]
>
> Нашел интересный архивчик с демкой по WMI. Серийник винта
> определяется из под Висты.

Под админом только


 
Германн ©   (2009-05-08 02:00) [20]


> AllDontFire   (07.05.09 18:39) [12]
>
> Задача:
> Получить серийный номер Hdd и использовать его для защиты
> ПО.
>

А моэжет не стОит?


 
Nickoss ©   (2009-05-08 10:06) [21]


> Под админом только


???   И под обычным юзером всё работает, только что проверил. Отказано в  доступе только по кнопке "Disk smart".
По "Disk serial (xp)" и
"Win32_PhysicalMedia" SerialNumber выдается та же инфа, что и под админом.

Vista Business SP1.


 
имя   (2009-05-23 18:37) [22]

Удалено модератором


 
Виктор85   (2009-05-29 12:29) [23]

Интересно, а эта штука правильно определяет хард
http://www.soft.tahionic.com/download-hdd_id/free-download/app-source-code.html


 
имя   (2009-07-06 09:29) [24]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2011.03.27;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.012 c
2-1293532259
NanoTek
2010-12-28 13:30
2011.03.27
Delphi 7


1-1250980688
Ruzzz
2009-08-23 02:38
2011.03.27
Класс настроек и сохранение/загрузка XML


2-1293459918
Дмитрий С
2010-12-27 17:25
2011.03.27
Отключить питание.


2-1293650496
Arm!n
2010-12-29 22:21
2011.03.27
Работа с CheckBox


3-1255361880
Piter
2009-10-12 19:38
2011.03.27
Оптимизация Join а в Postgres