多数のエンドユーザに調べさせるので、極力OS標準機能かWSH程度で済ませたいです。
なお、
タスクマネージャで見えるCPUグラフの数→HTついてる石だと倍に増えてしまうので不可。
デバイスマネージャから見えるプロセッサの数→同上
です。
HTによる仮想コアの水増しは無視して物理コア数を確認したいです。
そんな方法はあるでしょうか?
vbsのスクリプトを書いてみました。
以下の内容で、a.vbs という名前のファイルを作ってください
あとは、a.vbs をダブルクリックして実行すれば、物理CPU数、コア数が表示されます
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colCompSys = objWMIService.ExecQuery("Select * from Win32_ComputerSystem") For Each objCS in colCompSys str = " 物理CPU数: " & objCS.NumberOfProcessors & vbCrLf str = str & " コア数: " & objCS.NumberOfLogicalProcessors & vbCtLf WScript.Echo str Next
手元にwindowsXPが無いので動作確認が取れていませんが、vistaでは正しく動作しました
DirectX診断ツールで確認できます。
ファイル名を指定して実行で「dxdiag」
システムのタブのプロセッサの欄にCPU数が2個以上の場合、"(2 CPUs)"のように表示されます。
なるほど、これは少ない手順で調べられそうですね。
ありがとうございます。
これも cx20 さん紹介の Win32_Processor.NumberOfCores 同様に SP3 以降限定なのでしょうか?
(追記)
実際試してみたところ、無印 XP や2000でも使えましたが、HT 付き CPU だとコア数の倍で出てしまうようでした。コア数ではなく論理プロセッサの数を表示してしまうようです。残念…
「スタート」をクリックし、「マイ コンピュータ」上で右クリックして「プロパティ」を選択します。「全般」タブの下のほうに書いてあるのがCPUの名称と動作周波数です。
CPU名に core2 などと直接的な表記がある以外に、シリーズや型番で、判別できます。
Core i7 4or6
Core i5 2or4
Core i3 2
Core 2 Quad 4
Core 2 Duo 2
Celeron 1or2
Atom 1or2
CPU一覧
http://bdrl.hp.infoseek.co.jp/intel.html
インテル<マイクロプロセッサー
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%A...
コア数を調べるのは私ではなく多数のエンドユーザなので、CPU名を手がかりに調べて下さいというのはあまり現実的ではないのです。
他にいい手段が見つからなかったら最終手段としてそれで行こうと思っていますが、名前→コア数の対照表をメンテするのが厄介なんですよね…
windows 標準で使える「システム情報」を使ってみてはいかがでしょうか。
CPUの情報だけでなく、ハードウェアの細かい情報も知ることが出来ます。
あまり知られていない便利ツールです。
http://allabout.co.jp/computer/windows/closeup/CU20071007A/
CPUの確認は、「概要」 ⇒ 「プロセッサ」のところに表示されます。
システム情報は見てみましたが、これのどこにコア数の情報が載っているのでしょうか?
CPUの型番が分かれば簡単に調べられますよ。
型番の調べ方は↓
マイコンピュータ(右クリックのプロパティ)→全般タブ(コンピュータの欄の一行目か二行目)
型番が分かればこのサイではIntelのCPUもAMDのCPUも一覧表でみれるので、分かりやすいと思います。
コア数を調べるのは私ではなく多数のエンドユーザなので、CPU名を手がかりに調べて下さいというのはあまり現実的ではないのです。
他にいい手段が見つからなかったら最終手段としてそれで行こうと思っていますが、名前・モデルナンバーからコア数を導き出す対照表を作ってあげる必要がありなかなか大変です。
i5 だったら2コア、i7 だったら4コアかというと必ずしもそうでもなく例外があるし、特に Pentium や Celeron は同じ名を冠したものが色々あったりしてなかなか一筋縄ではいかないんですよね。
やっぱりご紹介いただいた一覧表を参考にしつつ対照表を作り込んでいくしかないんでしょうか…
vbsのスクリプトを書いてみました。
以下の内容で、a.vbs という名前のファイルを作ってください
あとは、a.vbs をダブルクリックして実行すれば、物理CPU数、コア数が表示されます
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colCompSys = objWMIService.ExecQuery("Select * from Win32_ComputerSystem") For Each objCS in colCompSys str = " 物理CPU数: " & objCS.NumberOfProcessors & vbCrLf str = str & " コア数: " & objCS.NumberOfLogicalProcessors & vbCtLf WScript.Echo str Next
手元にwindowsXPが無いので動作確認が取れていませんが、vistaでは正しく動作しました
ありがとうございます。
XP SP2 以前ではエラーとなってしまいますが、XP SP3 だと期待する結果が出るようですね。
スタートボタンを押して 「ファイル名を指定して実行」 を選択し、Dxdiag と入力してから OKを押す。
パソコンの性能の確認方法です。
Cherenkov さんと同じ方法ですね。
残念ながら、コア数ではなく論理プロセッサの数を表示してしまうようでした。
ありがとうございます。
XP SP2 以前ではエラーとなってしまいますが、XP SP3 だと期待する結果が出るようですね。