
私は Windows 10 でバッチ スクリプトを使用してクライアントのハードウェア情報を収集しています。私のクライアントの一部は、デュアル ビデオ アダプター、組み込み Intel グラフィック アダプター、および個別の Nvidia アダプターを備えたラップトップです。次の出力から必要な情報を収集できます。
wmic path win32_VideoController get /all /format:list
一部のデュアル アダプタ クライアントは、Nvidia アダプタを DeviceID=VideoController1、Intel アダプタを DeviceID=VideoController2 として報告しますが、同一のハードウェアを搭載した別のラップトップは、Intel を VideoController1、Nvidia を VideoController2 として報告します。
一見同じように見える 2 台のラップトップの違いは何なのか興味があります。WMIC がアダプタを VideoController1 と VideoController2 として報告することには何か意味があるのでしょうか?
私の質問は、Windows はどのようにして VideoController1 または VideoController2 のアダプターを選択するのかということです。
ありがとう!
答え1
私の解釈
によるとWin32_VideoController クラスのデバイスID財産は継承されるCIM_論理デバイス. あたりCIM_論理デバイス「物理的なハードウェア内にあるかどうかわからないハードウェアエンティティを表す" それ以来標準 WMI 修飾子「ID修飾子が意図せず省略された場合、MOFコンパイラはID修飾子を自動的に生成します。「—私にとっては、コマンドを実行したときに返される DeviceID 番号は、WMIC
ID を自動的に選択できるため、それほど重要ではないことを意味します。
サポートリソース
Win32_VideoController クラス
デバイスID
データ・タイプ:弦
アクセスタイプ: 読み取り専用
予選: 鍵、 オーバーライド ("デバイスID")、 マッピング文字列 (「WMI」)
このビデオ コントローラーの識別子 (コンピュータ システムに固有)。
このプロパティは、 CIM_論理デバイス。
CIM_LogicalDevice クラス
のCIM_LogicalDevice クラス物理ハードウェアで実現される場合もされない場合もあるハードウェア エンティティを表します。
デバイスID
データ型: 文字列
アクセスタイプ: 読み取り専用
予選:CIM_キー
論理デバイスに一意の名前を付けるためのアドレスまたはその他の識別情報。
標準 WMI 修飾子
ID
データ・タイプ:VT_I4
適用対象: プロパティ、パラメータ
MOF ステートメントが自動的に生成されるときに、プロパティまたはメソッド パラメーターを一意に識別して順序付けます。
この修飾子はメソッド パラメータにのみ必要です。メソッドのパラメータを作成する場合、クラス デザイナーは最初のパラメータに Id(0) を使用し、後続の各パラメータに後続の整数を使用する必要があります。ID 修飾子が意図せず省略された場合、MOF コンパイラは ID 修飾子を自動的に生成します。