読者です 読者をやめる 読者になる 読者になる

WMI Win32_Processorが使えない

プログラム

最近Windows7→10にした一台でアップデートしたとたんWin32_Processorが使えなくなってた
LoadPercentageがずっとnullになる感じ
他のWin10マシンでは問題ないので原因はよくわかんない

アップデート後にCPUの使用ログを見たらずっと0%のままなので何事かと思ったら・・・

とりあえずWin32_PerfFormattedData_PerfOS_Processorは使えるようなので
PercentProcessorTimeで置き換えるようにしてみた
タスクマネージャのCPU使用率と数ポイント誤差があるけどまぁええやろ

var locater = WScript.CreateObject("WbemScripting.SWbemLocator");
var service = locater.ConnectServer();

function get_cpu(service)
{
	var xs = new Enumerator(service.ExecQuery("Select * From Win32_Processor"));
	for(; !xs.atEnd(); xs.moveNext())
	{
		if(xs.item().LoadPercentage == null) {break;}
		return(xs.item().LoadPercentage);
	}
	xs = new Enumerator(service.ExecQuery("Select * From Win32_PerfFormattedData_PerfOS_Processor Where Name = '_Total'"));
	for(; !xs.atEnd(); xs.moveNext())
	{
		return(xs.item().PercentProcessorTime);
	}
	return("");
}

全くもう、ようわからん
昨日今日とちゃんと動いたので良しとしよう
f:id:zenu:20160418225401p:plain
f:id:zenu:20160418225403p:plain