我们需要从远程机器上查看已安装程序的列表以进行内部审核。所以我创建了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;
}
您能否帮助我获取除支持文件之外的所有已安装程序