Как получить название антивируса в переменную на языке C#
Ответ
Если пользоваться 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
Комментариев нет:
Отправить комментарий