有没有办法(在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"]);
}
答案 0 :(得分:1)
通常不会。
当程序将被卸载时,程序的每一位都应该从机器中移除,就像它从来没有一样。不幸的是,几乎每个程序都不能在这一点上做出完美的工作,在机器上留下一些文物。
然而,理想的行为是卸载后一切都消失了(包括某种计数器),这样才能检查当前是否安装了程序。
在另一个站点上没有任何东西允许程序保存某些计数器(例如注册表),这些计数器会在每次启动安装时增加,但这是每个程序特有的,并且这个计数器应该驻留在这里没有共同的机制。