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();
}
}