本文概述
- 1.添加对System.Management类的引用
- 2.检索信息
在本文中, 我们将向你展示如何通过安全中心的AntiVirusProduct类检索当前安装的防病毒名称。
1.添加对System.Management类的引用 为了获得有关WinForms中带有C#的主板的信息, 你将需要访问System Management类:
using System.Management;
但是, 在某些Visual Studio版本中(特别是在2010年和更高版本中), 你需要在项目中手动添加引用(.DLL)。为此, 请按照下列步骤操作:
- 右键单击项目, 添加引用
- 选择”
程序集(框架)”
选项卡, 然后搜索System.Management, 最后添加引用, 然后单击”
确定”
。
文章图片
我们需要添加System.Management来在WMI类中创建查询。在此处阅读有关在msdn中检索.NET中的WMI类的更多信息。
2.检索信息 要从Management Object Searcher中检索信息, 我们将查询root \ SecurityCenter2(在Windows XP下为root \ SecurityCenter)类。 Microsoft未记录返回有关已安装的防病毒信息的AntivirusProduct类, 只有Windows Desktops版本(Windows XP, Windows Vista和Windows 7)才支持。同样, 根据Windows版本的不同, 此类可以检索此类的属性, 例如, 在Windows XP中, 这些属性可用:
Namespace : SecurityCenterAntiVirusProduct-PropertiescompanyNamedisplayNameenableOnAccessUIMd5HashenableOnAccessUIParametersinstanceGuidonAccessScanningEnabledpathToEnableOnAccessUIpathToUpdateUIproductUptoDateupdateUIMd5HashupdateUIParametersversionNumber
在Windows 7及更高版本中:
Namespace : SecurityCenter2displayNameinstanceGuidpathToSignedProductExepathToSignedReportingExeproductState
因此, 在此示例中, 我们正在Windows 10中工作, 因此我们可以检索的属性是以下代码片段中包含的属性:
public void getAntivirusName(){ManagementObjectSearcher wmiData = http://www.srcmini.com/new ManagementObjectSearcher(@"root\SecurityCenter2", "SELECT * FROM AntiVirusProduct");
ManagementObjectCollection data = http://www.srcmini.com/wmiData.Get();
foreach (ManagementObject virusChecker in data){Console.WriteLine(virusChecker["displayName"]);
Console.WriteLine(virusChecker["instanceGuid"]);
Console.WriteLine(virusChecker["pathToSignedProductExe"]);
Console.WriteLine(virusChecker["productState"]);
}}
在我们的PC中, 代码将生成以下输出:
Windows Defender{xxxxxxxx-831F-xxxx-9EE-DA111111146}windowsdefender://397568
请注意, productState属性返回一个数字, 该数字的解释会根据你拥有的防病毒软件而有所不同, 例如:
A.AVG Internet Security 2012(来自防病毒产品WMI)
262144(040000)=禁用且最新
【如何使用WinForms上的C#识别(检测和命名)安装在PC上的防病毒软件】266240(041000)=已启用且最新
B.AVG Internet Security 2012(来自防火墙产品WMI)
266256(041010)=启用了防火墙-(后两个块与防火墙似乎无关)
262160(040010)=禁用了防火墙-(后两个块与防火墙似乎无关)
C.Windows Defender
393472(060100)=禁用且最新
397584(061110)=已启用且已过期
397568(061100)=已启用并且是最新的
D. Microsoft安全必备
397312(061000)=已启用且是最新的
393216(060000)=禁用且最新
编码愉快!
推荐阅读
- ScanCall回来没有进入Android Oreo
- 如何在PHP中创建数字的缩写
- 如何在Symfony 4中安装KnpPaginatorBundle来对学说进行分页
- 如何解决PHPExcel致命错误(带有消息”无法关闭zip”的未捕获异常” PHPExcel_Writer_Exception”)
- 如何在XAMPP 3.3.2中为Symfony 4项目配置虚拟主机
- 如何通过PHP中的十六进制代码检索颜色的人名
- 如何将嵌套的PHP数组转换为CSS,SASS,LESS规则(字符串)
- 如何在PHP中将日期时间四舍五入到最接近的10或5分钟
- 使用PHP将字节转换为人类可读的值(KB,MB,GB,TB,PB,EB,ZB,YB)