在计算机上安装和卸载软件的次数

时间:2012-08-06 11:29:58

标签: c# wmi wmi-query

有没有办法(在C#中,使用WMI类)找出特定软件安装和卸载的次数?

我想在远程计算机上运行它。我按照以下代码获取软件列表:

ManagementScope scope = new ManagementScope(@"\\" + ipAddress + @"\root\cimv2");
ObjectQuery query = new ObjectQuery("Select * from  Win32_Product");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach (ManagementObject m in queryCollection)
{
    Console.Write(m["Caption"]+"\t");
    Console.WriteLine(m["installDate"]);
}

1 个答案:

答案 0 :(得分:1)

通常不会。

当程序将被卸载时,程序的每一位都应该从机器中移除,就像它从来没有一样。不幸的是,几乎每个程序都不能在这一点上做出完美的工作,在机器上留下一些文物。

然而,理想的行为是卸载后一切都消失了(包括某种计数器),这样才能检查当前是否安装了程序。

在另一个站点上没有任何东西允许程序保存某些计数器(例如注册表),这些计数器会在每次启动安装时增加,但这是每个程序特有的,并且这个计数器应该驻留在这里没有共同的机制。