1

ねえ、

Windows システムのコア数を取得する関数を作成しました。XP 64 ビットを除くすべてのシステムで動作します。情報を取得する方法は次のとおりです。

$objWMIItems = $objWMIService.ExecQuery ("SELECT * FROM Win32_Processor")
If (0 == IsObj($objWMIItems)) Then
       ;~ errorhandling
Else
For $objElement In $objWMIItems
    $nCoreNumber = $objElement.NumberOfCores
Next

「NumberOfCores」に関して、Microsoft の MSDN ページには、「Windows Server 2003、Windows XP、および Windows 2000: このプロパティは使用できません」と表示されます。どこかで読んだところ、SP3をインストールすると可能です。XP 32 ビット システムではそのように動作するため、これは正しいと思います。しかし、XP 64 用の SP3 はありません...

情報を取得する別の方法はありますか?

ありがとう

4

2 に答える 2

3

NUMBER_OF_PROCESSORS 環境変数を読み取るのが最も簡単だと思います。

于 2011-07-29T16:31:19.667 に答える
0

「コア」または「ハイパースレッディングを含む論理プロセッサの数」が必要ですか? (つまり、ハイパースレッディングを「コア」としてカウントしますか)?

いずれにせよ、しばらく前の同様の質問から私の回答をコピーします。

実際のコア、チップ、および論理プロセッサを実際に区別する必要がある場合、呼び出す API は GetLogicalProcessInformation です。

マシン上の論理プロセッサの数を知りたいだけの場合は、 GetSystemInfoを使用します(ハイパースレッディングの区別はありません)。

于 2011-07-29T17:15:26.337 に答える