我无法将 WMI 查询的响应写入文件,但可以将其打印到控制台。
我重写了查询以使用不同的 WMI 方法来提取数据。我改回了以下易于使用的方法。
如果响应不是可写字符串,我从更改为mo["PackageName"]
。mo["PackageName"].ToString()
我用谷歌搜索 - 我还没有找到类似的问题,我开始认为我的代码中很明显我只是忽略了一些东西。
//store log in same directory as exe is ran from
StreamWriter writeFile = new StreamWriter(filepath);
ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT PackageName FROM Win32_Product WHERE PackageName LIKE 'jre%%'");
foreach (ManagementObject mo in mos.Get())
{
if (mo["PackageName"].ToString().Contains("jre"))
{
String packageName = mo["PackageName"].ToString();
writeFile.WriteLine(host + "," + packageName);
}
}
更新 见下面我的回答:
foreach (ManagementObject mo in mos.Get())
{
if (mo["PackageName"].ToString().Contains("jre"))
{
String packageName = mo["PackageName"].ToString();
writeFile.WriteLine(host + "," + packageName);
writeFile.Flush();
}
}