Глядя на правила применимости, которые используются WSUS (msus), просматривая сами файлы XML, можно увидеть множество правил, которые не задокументированы в документах MSDN или в файлах XSD, которые поставляются с WSUS.
По большей части мне удалось выяснить, как агент обновлений работает с правилами, за исключением LicenseDword, который согласно XML является частью схемы BaseApplicabilityRules, но не является документом вообще.
Кажется, что он ориентирован на реестр, но не может найти никаких значений в реестре, чтобы определить, как оценивается правило.
Пример XML
<upd:ApplicabilityRules>
<upd:IsInstalled>
<bar:LicenseDword Value="Kernel-ProductInfo" Comparison="EqualTo" Data="30" xmlns:bar="http://schemas.microsoft.com/msus/2002/12/BaseApplicabilityRules" />
</upd:IsInstalled>
</upd:ApplicabilityRules>
Вся документация MSDN по схеме Вот. Сами файлы XSD доступны только в каталоге установки WSUS в папке с именем schemas.
Если кто-то знает об этом правиле или знает, что они пытаются оценить и как это делается, это будет очень полезно.
Ты можешь использовать SLGetWindowsInformationDWORD из API лицензирования программного обеспечения, чтобы получить значения.
Вы можете сделать это самостоятельно, перейдя в раздел реестра:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ ProductOptions
Затем посмотрите на REG_BINARY Value ProductPolicy, который представляет собой двоичное хранилище того, что похоже на пары ключ-значение. Я не проработал остальные детали, но, по крайней мере, я знаю метод API и ручной метод доступа к этой информации, необходимой для оценки LicensedDword.