Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Как получить название антивируса в переменную C#

#c_sharp


Как получить название антивируса в переменную на языке C#
    


Ответы

Ответ 1



Если пользоваться WMI, то можно сделать так: var searcher = new ManagementObjectSearcher("root\\SecurityCenter2", "SELECT * FROM AntiVirusProduct"); // это цикл по найденным антивирусам foreach (ManagementObject queryObj in searcher.Get()) { string displayName = (string)queryObj["displayName"]; // имя Console.WriteLine($"Antivirus: {displayName}"); uint productState = (uint)queryObj["productState"]; uint secutityProvider = (productState & 0xff0000) >> 16; // что умеет Console.Write("Security provider:"); if ((secutityProvider & 1) != 0) Console.Write(" firewall"); if ((secutityProvider & 2) != 0) Console.Write(" autoupdate settings"); if ((secutityProvider & 4) != 0) Console.Write(" antivirus"); if ((secutityProvider & 8) != 0) Console.Write(" antispyware"); if ((secutityProvider & 16) != 0) Console.Write(" internet settings"); if ((secutityProvider & 32) != 0) Console.Write(" user account control"); if ((secutityProvider & 64) != 0) Console.Write(" service"); Console.WriteLine(); uint realtimeStatus = (productState & 0xff00) >> 8; // realtime-защита Console.Write("Realtime status: "); switch (realtimeStatus) { case 0x00: Console.WriteLine("off"); break; case 0x01: Console.WriteLine("expired"); break; case 0x10: Console.WriteLine("on"); break; case 0x11: Console.WriteLine("snoozed"); break; default: Console.WriteLine("unknown"); break; } uint signatureStatus = (productState & 0xff); // состояние сигнатур Console.Write("Signature status: "); switch (signatureStatus) { case 0x00: Console.WriteLine("up to date"); break; case 0x10: Console.WriteLine("oout of date"); break; default: Console.WriteLine("unknown"); break; } } Источник: https://gallery.technet.microsoft.com/scriptcenter/Get-the-status-of-4b748f25 Если вам нужно только имя, и вы уверены, что антивирус на системе ровно один, можно упростить до string name = (string) (new ManagementObjectSearcher("root\\SecurityCenter2", "SELECT * FROM AntiVirusProduct") .Get().Cast().Single()["displayName"]);

Комментариев нет:

Отправить комментарий