Запросы wql WMI для получения антивирусной информации

Какие различные SQL-запросы могут помочь в получении информации об установленном антивирусе? Я знаю 1 запрос, который сообщает имя антивируса (как показано в приведенном ниже коде). Какую другую информацию мы можем получить с помощью запросов wql?

 string wmipathstr = @"\\" + Environment.MachineName + @"\root\SecurityCenter2";
 Console.WriteLine(Environment.MachineName );

 var searcher = new ManagementObjectSearcher(wmipathstr, "SELECT * FROM AntivirusProduct");

 foreach (var instances in searcher.Get())
 {
   Console.WriteLine(instances.GetPropertyValue("displayName"));
 }
 Console.Read();

person Unbreakable    schedule 30.03.2012    source источник
comment
кроме displayName какую еще информацию мы можем получить?   -  person Unbreakable    schedule 30.03.2012
comment
информация, такая как версия антивируса или включен или выключен его брандмауэр и т. д.   -  person Unbreakable    schedule 30.03.2012


Ответы (1)


В этой статье показаны еще несколько полей, которые должны существовать:

companyName
displayName
instanceGuid
onAccessScanningEnabled
pathToSignedProductExe
productHasNotifiedUser
productState
productUptoDate
productWantsWscNotifications
versionNumber  

Я предполагаю, что productState будет вашим «независимо от того, включен он или выключен».

Обновление: я считаю, что вы можете использовать WscGetSecurityProviderHealth, чтобы узнать, включено ли это, если это все, что вы ищете.

person Alexander R    schedule 30.03.2012
comment
Спасибо за ответ. Угадайте, что меня больше всего беспокоит только в статусе брандмауэра. Знаете ли вы, как использовать WscGetSecurityProviderHealth в C Sharp. - person Unbreakable; 30.03.2012
comment
Или, если нет, дайте мне знать, как использовать этот метод состояния продукта в C Sharp. Любой фрагмент, если вы могли бы поделиться . - person Unbreakable; 30.03.2012