获取已安装程序的列表并排除支持程序

时间:2017-03-08 14:40:33

标签: c# wmi

我们需要从远程机器上查看已安装程序的列表以进行内部审核。所以我创建了c#代码。我们只需要安装的软件。但是我们使用以下代码获得了大约450个项目。列表中的许多项目都是支持软件。我们需要从列表中排除支持文件

例如。如果Visual Studio安装在计算机上,则还会列出支持文件。我们需要从列表中排除支持文件。

public List<ProductInfo> getlistofinstalledprograms(string IP,string username, string password)
    {
        List<ProductInfo> lstProductInfo = new List<ProductInfo>();

        try
        {
            ConnectionOptions options = new ConnectionOptions();
            options.Impersonation = System.Management.ImpersonationLevel.Impersonate;
            options.Username = username;
            options.Password = password;
            ManagementScope scope = new ManagementScope(@"\\" + IP + @"\root\cimv2", options);


            ObjectQuery objquery = new ObjectQuery("SELECT * FROM Win32_Product");
            ManagementObjectSearcher mobsearcher = new ManagementObjectSearcher(scope, objquery);
            ProductInfo objProductInfo;

            foreach (ManagementObject mob in mobsearcher.Get())
            {

                objProductInfo = new ProductInfo();
                objProductInfo.ProductName = Convert.ToString(mob["Name"]);
                objProductInfo.ProductVersion = Convert.ToString(mob["Version"]);
                objProductInfo.Caption=Convert.ToString(mob["Caption"]);
                objProductInfo.Description=Convert.ToString(mob["Description"]);
                objProductInfo.ProductID=Convert.ToString(mob["ProductID"]);
                objProductInfo.RegCompany=Convert.ToString(mob["RegCompany"]);
                objProductInfo.RegOwner=Convert.ToString(mob["RegOwner"]);
                objProductInfo.SKUNumber=Convert.ToString(mob["SKUNumber"]);
                objProductInfo.Vendor=Convert.ToString(mob["Vendor"]);
                lstProductInfo.Add(objProductInfo);
            }
        }
        catch (Exception)
        {

            throw;
        }

        return lstProductInfo;

    }

您能否帮助我获取除支持文件之外的所有已安装程序

0 个答案:

没有答案