WMI查询响应正在写入文件
本文关键字:文件 查询 响应 WMI | 更新日期: 2023-09-27 18:14:45
我无法将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();
}
}
在不知道writeFile
是什么或它是如何定义的情况下,我只能建议您使用更容易的System.IO.File
类,如:
File.AppendAllText(pathToYourFile, host + "," + packageName);
这将自动打开、写入和关闭您的文件。
我使用WMI Code Creator来创建WMI查询代码。
它可以创建c#代码,并且可以测试查询。
不是真正的答案,但可能有帮助。
写完字后忘了冲洗。
String packageName = mo["PackageName"].ToString();
writeFile.WriteLine(host + "," + packageName);
writeFile.Flush();