Win32_WindowsProductActivation ProductID, эквивалентный в классах лицензирования программного обеспечения - PullRequest
2 голосов
/ 16 марта 2012

У меня есть кусок старого кода, который использовал запрос, используя WQL , чтобы войти в класс Win32_WindowsProductActivation .

SELECT * FROM Win32_WindowsProductActivation

Затем он повторил егои обязательно получил строку ProductID, используя

hres = pclsObj->Get("ProductID", 0, &vtProp, 0, 0);

и

return WideString(vtProp.bstrVal);

Я хотел немного это исправить, а также хотел, чтобы она работала в Windows 7, и заметил, что поддержкаКласс Win32_WindowsProductActivation был удален в Windows Vista.Я также читал, что аналогичные функциональные возможности теперь предоставляются классами лицензирования программного обеспечения.Как бы выглядело это с эквивалентными классами лицензирования программного обеспечения?

Кажется, я не вижу, какое поле exat будет возвращать то же значение.Угадывание ProductKeyID класса SoftwareLicensing Product .Но есть и такие, которые похожи на кандидатов в Ликли:)

1 Ответ

4 голосов
/ 16 марта 2012

Свойство ProductID состояния Win32_WindowsProductActivation

Строка из 20 символов, разделенных дефисами в формате xxxxx-xxx-xxxxxxx-xxxxx.Это тот же идентификатор продукта, который отображается на вкладке "Общие" в диалоговом окне "Свойства системы" на панели управления.

Теперь, если вы проверите значение свойства ProductKeyID SoftwareLicensingProduct класс WMI в Windows 7, он не совпадает с ProductID диалогового окна «Свойства системы».

Решение состоит в использовании свойства SerialNumber Win32_OperatingSystem, это работает вWindows XP, Vista и 7 (и серверные версии Windows тоже)

...