public List <SecurityProductData> GetASProducts() { List <SecurityProductData> List_Data = new List <SecurityProductData>(); try { int m_version = System.Environment.OSVersion.Version.Major; string security_center = ""; //string system_name = @"\\" + Environment.MachineName + @"\"; if (m_version > 5) { security_center = @"root\SecurityCenter2"; } else { security_center = @"root\SecurityCenter"; } using (ManagementObjectSearcher as_searcher = new ManagementObjectSearcher(security_center, "SELECT * FROM AntiSpywareProduct")) { using (ManagementObjectCollection data = as_searcher.Get()) { foreach (ManagementObject managementobject in data) { SecurityProductData security_software_data = new SecurityProductData(); security_software_data.name = (string)managementobject["displayName"]; security_software_data.path = (string)managementobject["pathToSignedProductExe"]; if (m_version > 5) { security_software_data.state32 = (UInt32)managementobject["productState"]; string hex_value = Convert.ToInt32(security_software_data.state32).ToString("X6"); if (hex_value.Substring(2, 2) == "10" || hex_value.Substring(2, 2) == "11") { security_software_data.enabled = true; } else if (hex_value.Substring(2, 2) == "00" || hex_value.Substring(2, 2) == "01") { security_software_data.enabled = false; } if (hex_value.Substring(4, 2) == "00") { security_software_data.updated = true; } else if (hex_value.Substring(4, 2) == "10") { security_software_data.updated = false; } } else { security_software_data.updated = (bool)managementobject["productUptoDate"]; security_software_data.enabled = (bool)managementobject["productEnabled"]; security_software_data.version = (string)(managementobject["versionNumber"]); security_software_data.state8 = (byte)managementobject["productState"]; } List_Data.Add(security_software_data); } } } } catch (Exception Ex) { LogWriter.Exception("Something went wrong parsing WMI for security software.", Ex); } return(List_Data); }
public List <SecurityProductData> GetFWProducts() { List <SecurityProductData> List_Data = new List <SecurityProductData>(); try { SecurityProductData fw_data = new SecurityProductData(); fw_data.name = "Windows Firewall"; fw_data.path = @"%SystemRoot%\System32\firewall.cpl"; // REQUIRES using NetFwTypeLib; Type objectType = Type.GetTypeFromCLSID(new Guid("{304CE942-6E39-40D8-943A-B913C40C9CD4}")); INetFwMgr inetfwmgr = (INetFwMgr)Activator.CreateInstance(objectType); fw_data.enabled = inetfwmgr.LocalPolicy.CurrentProfile.FirewallEnabled; // REQUIRES .net 4.0; //Type FWManagerType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false); //dynamic FWManager = Activator.CreateInstance(FWManagerType); //fw_data.enabled = FWManager.LocalPolicy.CurrentProfile.FirewallEnabled; List_Data.Add(fw_data); int m_version = System.Environment.OSVersion.Version.Major; string security_center = ""; //string system_name = @"\\" + Environment.MachineName + @"\"; if (m_version > 5) { security_center = @"root\SecurityCenter2"; } else { security_center = @"root\SecurityCenter"; } using (ManagementObjectSearcher fw_searcher = new ManagementObjectSearcher(security_center, "SELECT * FROM FirewallProduct")) { using (ManagementObjectCollection data = fw_searcher.Get()) { foreach (ManagementObject managementobject in data) { SecurityProductData security_software_data = new SecurityProductData(); security_software_data.name = (string)managementobject["displayName"]; security_software_data.path = (string)managementobject["pathToSignedProductExe"]; if (m_version > 5) { security_software_data.state32 = (UInt32)managementobject["productState"]; string hex_value = Convert.ToInt32(security_software_data.state32).ToString("X6"); if (hex_value.Substring(2, 2) == "10" || hex_value.Substring(2, 2) == "11") { security_software_data.enabled = true; } else if (hex_value.Substring(2, 2) == "00" || hex_value.Substring(2, 2) == "01") { security_software_data.enabled = false; } } else { security_software_data.enabled = (bool)managementobject["enabled"]; security_software_data.version = (string)managementobject["versionNumber"]; security_software_data.state8 = (byte)managementobject["productState"]; } List_Data.Add(security_software_data); } } } } catch (Exception Ex) { LogWriter.Exception("Something went wrong parsing WMI for security software.", Ex); } return(List_Data); }