Re: как работает WMI?
От: okman Беларусь https://searchinform.ru/
Дата: 17.09.11 10:52
Оценка: 12 (5)
Здравствуйте, Win32nipuh, Вы писали:

W>Что для этого нужно на юзерском компьютере?

W>Т.е. я хочу в приложении(VС++) взять некоторые данные через WMI, чтобы привязаться к компьюетру.
W>Так вот вопрос: может ли WMi не работать на юзерском компьютере? ну там сервис не стартован и т.д.?
W>Надежно ли использование WMi запросов?

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

Почти все наиболее близкие к аппаратной составляющей характеристики достаются только из kernel-mode.
Да, WMI здесь помогает, но она может быть отключена (это раз), может быть недостаточно прав (это два),
некоторые параметры возвращаются пустыми строками (это три), и на разных компьютерах ситуация разная (это четыре).

А самое главное — ну вытяните Вы эти параметры, а дальше-то с ними что делать ?
Вот у меня на сервере два сетевых интерфейса и один еще виртуальный. Из какого из них
вытягивать MAC ? Из первого ? А если я удалю подключение и создам заново, вдруг второй адаптер станет в
списке первым ? Мой MAC поменяется и программа скажет что я использую нелегально приобретенную версию ?

Идем дальше. Жесткий диск и его популярный серийник.
Пожалуйста — есть некоторые модели винтов, где серийник возвращается как пустая строка.

Кстати, я в свое время привязывался к параметром видеокарты.
Каково же было мое удивление, когда я узнал, что GeForce и Radeon имеют различающиеся API
для доступа к своим параметрам ! То же самое с процессорами Intel/AMD, если пойти чуть
дальше банального CPUID.

Можно еще вытянуть название видеокарты, планок памяти и типа процессора, привязаться к
ключу активации Windows, и т.д. Все будет работать до тех пор, пока программу не потребуется
развернуть в каком-нибудь компьютерном классе с ограничением по количеству рабочих мест.
Тут вдруг опа — все компы имеют (неожиданность, да ?) одинаковые показатели, потому что
были закуплены оптовой партией у одного производителя, там даже номера партий материнских
плат или RAM совпадают, не говоря уже о каких-то хардах.

А еще юзеры постоянно апгрейдят свои компы. Я, к примеру, как минимум раз в полгода примерно
что-нибудь меняю, совершенствую, а раз в 5-6 лет вообще перехожу на принципиально новое оборудование.
Тут вообще без комментариев.

Если программа — ПО на заказ для конторы с вполне определенными требованиями и
специфичным, так сказать, целевым рынком, то дело одно. А если массовый продукт или
shareware, тогда совсем другое.

Но это я все так пишу, ни на что не уповая и не надеясь, просто часок выдался свободный.
Все равно Вы забъете и пойдете писать свой определитель Hardware Id, пока не встретите те же грабли.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.