WMI は英語の Windows Management Instrumentation の略称で、主な機能は次のとおりです。ローカル ホストの一部の情報とサービスにアクセスし、再起動、シャットダウン、閉じるなどのリモート コンピュータを管理できます (もちろん、十分な権限が必要です)。プロセスを作成し、待機します。
もちろん、この記事は vbscript にも適用できます
マイクロソフト公式情報:
例は次のとおりです。
WMI を使用するには、まずプロジェクトを作成します。「Microsoft WMI Scripting V1.1 Library」を参照してください。
グラフィックス カード/サウンド カード/メモリ/オペレーティング システム情報を取得する
サウンドカード情報
Private Sub wmiSoundDeviceInfo()Dim wmiObjSet As SWbemObjectSetDim obj As SWbemObjectSet wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate}) _InstancesOf(Win32_SoundDevice)On ローカル エラー Resume NextFor Each obj In wmiObjSetMsgBox obj.ProductNameNextEndサブグラフィックカード情報
Private Sub wmiVideoControllerInfo()Dim wmiObjSet As SWbemObjectSetDim obj As SWbemObjectSet wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate}) _InstancesOf(Win32_VideoController)On ローカル エラーが wmiObjSetMsgBox の各オブジェクトで再開します。 obj.VideoProcessorNextEnd Sub記憶情報
Private Sub wmiPhysicalMemoryInfo()Dim wmiObjSet As SWbemObjectSetDim obj As SWbemObjectSet wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate})On ローカル エラー Resume NextFor Each objItem in wmiObjSetDebug.Print BankLabel: & objItem.BankLabelDebug.Print Capacity: & objItem.CapacityDebug.Print Caption: & objItem.CaptionDebug.Print CreationClassName: & objItem.CreationClassNameDebug.Print DataWidth: & objItem.DataWidthDebug.Print description: & objItem.DescriptionDebug.Print DeviceLocator: & objItem.DeviceLocatorDebug.Print FormFactor: & objItem.FormFactorDebug.Print HotSwappable: & objItem.HotSwappableDebug.Print InstallDate: & objItem.InstallDateDebug.Print InterleaveDataDepth: & objItem.InterleaveDataDepthDebug.Print InterleavePosition: & objItem.InterleavePositionDebug.Print メーカー: & objItem.ManufacturingDebug.Print MemoryType: & objItem.MemoryTypeDebug.Print モデル: & objItem.ModelDebug.Print Name: & objItem.nameDebug.Print OtherIdentifyingInfo: & objItem.OtherIdentifyingInfoDebug.Print PartNumber: & objItem.PartNumberDebug.Print PositionInRow: & objItem.PositionInRowDebug.Print PoweredOn: & objItem.PoweredOnDebug.Print Removable: & objItem.RemovableDebug.Print Replaceable: & objItem.ReplaceableDebug.Print SerialNumber: & objItem.SerialNumberDebug.Print SKU: & objItem.SKUDebug.Print Speed: & objItem.SpeedDebug.Print Status: & objItem.StatusDebug.Print Tag: & objItem.TagDebug.Print TotalWidth: & objItem.TotalWidthDebug.Print TypeDetail: & objItem.TypeDetailDebug.Print Version: & objItem。バージョンネクストエンドサブオペレーティング システム情報
Private Sub Command1_Click()Dim wmiObjSet As SWbemObjectSetDim obj As SWbemObjectDim msg As StringDim dtb As StringDim d As StringDim t As StringDimbias As LongOn ローカル エラー再開 NextSet wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate}).InstancesOf(Win32_OperatingSystem)For Each obj In wmiObjSetMsgBox 現在使用しているシステムは & obj.CaptionNextEnd Sub です例証します:
実際、WMI は WIN32_class ライブラリ名を使用して情報を抽出します。次の表は、Microsoft オペレーティング システムのさまざまなハードウェア クラスの説明です。
他の WMI 管理クラスに関する情報は、
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/accessing_hardware_and_software_through_wmi.asp
いくつかのサンプルコードも含まれています。
単純な Win_32 クラス テーブル
Win32 クラス
Microsoft® Windows® クラスは、さまざまなオブジェクトを操作する手段を提供します。次の表は、Windows クラスのカテゴリを示しています。
カテゴリの説明
コンピュータ システム ハードウェア ハードウェア関連のオブジェクトを表すクラス。
オペレーティング システム オペレーティング システム関連のオブジェクトを表すクラス。
インストールされたアプリケーション ソフトウェア関連のオブジェクトを表すクラス。
WMI サービス管理 WMI の管理に使用されるクラス。
パフォーマンス カウンター フォーマットされた生のパフォーマンス データを表すクラス。
ハードウェア
コンピュータ システムのハードウェア クラス
Cooling Devices サブカテゴリは、計測可能なファン、温度プローブ、および冷凍装置を表すクラスをグループ化します。
クラスの説明
Win32_Fan コンピューター システムのファン デバイスのプロパティを表します。
Win32_HeatPipe ヒート パイプ冷却デバイスのプロパティを表します。
Win32_Refrigeration 冷凍装置のプロパティを表します。
Win32_TemperatureProbe 温度センサー (電子温度計) のプロパティを表します。
入力デバイスクラス
入力デバイス サブカテゴリは、キーボードとポインティング デバイスを表すクラスをグループ化します。
クラスの説明
Win32_Keyboard Windows システムにインストールされているキーボードを表します。
Win32_PointingDevice Windows コンピュータ システムのディスプレイ上の領域をポイントし、選択するために使用される入力デバイスを表します。
マスストレージクラス
大容量ストレージ サブカテゴリのクラスは、ハード ディスク ドライブ、CD-ROM ドライブ、テープ ドライブなどのストレージ デバイスを表します。
クラスの説明
Win32_AutochkSetting ディスクの自動チェック操作の設定を表します。
Win32_CDROMDrive Windows コンピュータ システム上の CD-ROM ドライブを表します。
Win32_DiskDrive Windows オペレーティング システムを実行しているコンピュータから認識される物理ディスク ドライブを表します。
Win32_FloppyDrive フロッピー ディスク ドライブの機能を管理します。
Win32_PhysicalMedia あらゆるタイプのドキュメントまたは記憶媒体を表します。
Win32_TapeDrive Windows コンピュータ上のテープ ドライブを表します。
マザーボード、コントローラー、およびポートのクラス
マザーボード、コントローラ、およびポートのサブカテゴリは、システム メモリ、キャッシュ メモリ、コントローラなどのシステム デバイスを表すクラスをグループ化します。
クラスの説明
Win32_1394Controller 1394 コントローラーの機能と管理を表します。
Win32_1394ControllerDevice 高速シリアル バス (IEEE 1394 Firewire) コントローラーと、それに接続されている CIM_LogicalDevice インスタンスを関連付けます。
Win32_AllocatedResource 論理デバイスをシステム リソースに関連付けます。
Win32_AssociatedProcessorMemory プロセッサとそのキャッシュ メモリを関連付けます。
Win32_BaseBoard ベースボード (マザーボードまたはシステム ボードとも呼ばれます) を表します。
Win32_BIOS コンピュータにインストールされているコンピュータ システムの基本入出力サービス (BIOS) の属性を表します。
Win32_Bus Windows オペレーティング システムで認識される物理バスを表します。
Win32_CacheMemory コンピュータ システム上のキャッシュ メモリ (内部および外部) を表します。
Win32_ControllerHasHub ユニバーサル シリアル バス (USB) コントローラーからダウンストリームのハブを表します。
Win32_DeviceBus システムバスとバスを使用する論理デバイスを関連付けます。
Win32_DeviceMemoryAddress Windows システム上のデバイス メモリ アドレスを表します。
Win32_DeviceSettings 論理デバイスとそれに適用できる設定を関連付けます。
Win32_DMAChannel Windows コンピュータ システム上のダイレクト メモリ アクセス (DMA) チャネルを表します。
Win32_FloppyController フロッピー ディスク ドライブ コントローラの機能と管理容量を表します。
Win32_IDEController Integrated Drive Electronics (IDE) コントローラー デバイスの機能を表します。
Win32_IDEControllerDevice IDE コントローラーと論理デバイスを関連付ける関連付けクラス。
Win32_InfraredDevice 赤外線デバイスの機能と管理を表します。
Win32_IRQResource Windows コンピュータ システム上の割り込み要求ライン (IRQ) 番号を表します。
Win32_MemoryArray コンピュータ システムのメモリ配列とマップされたアドレスのプロパティを表します。
Win32_MemoryArrayLocation 論理メモリ配列とそれが存在する物理メモリ配列を関連付けます。
Win32_MemoryDevice コンピューター システムのメモリ デバイスのプロパティと、それに関連付けられたマップされたアドレスを表します。
Win32_MemoryDeviceArray メモリ デバイスとそれが存在するメモリ アレイを関連付けます。
Win32_MemoryDeviceLocation メモリ デバイスとそれが存在する物理メモリを関連付ける関連付けクラス。
Win32_MotherboardDevice Windows コンピュータ システムの中心コンポーネントを含むデバイスを表します。
Win32_OnBoardDevice マザーボード (システム ボード) に組み込まれている一般的なアダプター デバイスを表します。
Win32_ParallelPort Windows コンピュータ システム上のパラレル ポートのプロパティを表します。
Win32_PCMCIAController パーソナル コンピュータ メモリ カード インターフェイス アダプタ (PCMCIA) コントローラ デバイスの機能を管理します。
Win32_PhysicalMemory オペレーティング システムで使用できるコンピューター上にある物理メモリ デバイスを表します。
Win32_PhysicalMemoryArray コンピューター システムの物理メモリに関する詳細を表します。
Win32_PhysicalMemoryLocation 物理メモリの配列とその物理メモリを関連付けます。
Win32_PNPAllocatedResource 論理デバイスとシステム リソース間の関連付けを表します。
Win32_PNPDevice デバイス (Configuration Manager では PNPEntity として認識される) とデバイスが実行する機能を関連付けます。
Win32_PNPEntity プラグ アンド プレイ デバイスのプロパティを表します。
Win32_PortConnector DB-25 ピン オス、セントロニクス、PS/2 などの物理接続ポートを表します。
Win32_PortResource Windows コンピュータ システムの I/O ポートを表します。
Win32_Processor Windows コンピュータ システム上で一連の機械語命令を解釈できるデバイスを表します。
Win32_SCSIController Windows システム上の小型コンピュータ システム インターフェイス (SCSI) コントローラを表します。
Win32_SCSIControllerDevice SCSI コントローラとそれに接続されている論理デバイス (ディスク ドライブ) を関連付けます。
Win32_SerialPort Windows システム上のシリアル ポートを表します。
Win32_SerialPortConfiguration Windows シリアル ポートでのデータ送信の設定を表します。
Win32_SerialPortSetting シリアル ポートとその構成設定を関連付けます。
Win32_SMBIOSMemory メモリ関連の論理デバイスの機能と管理を表します。
Win32_SoundDevice Windows コンピュータ システム上のサウンド デバイスのプロパティを表します。
Win32_SystemBIOS コンピュータ システム (スタートアップ プロパティ、タイム ゾーン、ブート構成、管理パスワードなどのデータを含む) とシステム BIOS (サービス、言語、システム管理プロパティ) を関連付けます。
Win32_SystemDriverPNPEntity Windows コンピュータ システム上のプラグ アンド プレイ デバイスと、プラグ アンド プレイ デバイスをサポートするドライバを関連付けます。
Win32_SystemEnclosure 物理システム エンクロージャに関連付けられたプロパティを表します。
Win32_SystemMemoryResource Windows システム上のシステム メモリ リソースを表します。
Win32_SystemSlot ポート、マザーボード スロット、周辺機器、および独自の接続ポイントを含む物理接続ポイントを表します。
Win32_USBController ユニバーサル シリアル バス (USB) コントローラーの機能を管理します。
Win32_USBControllerDevice USB コントローラーとそれに接続されている CIM_LogicalDevice インスタンスを関連付けます。
Win32_USBHub USB ハブの管理特性を表します。
ネットワーキングデバイスクラス
Networking Devices サブカテゴリは、ネットワーク インターフェイス コントローラー、その構成、およびその設定を表すクラスをグループ化します。
クラスの説明
Win32_NetworkAdapter Windows システム上のネットワーク アダプターを表します。
Win32_NetworkAdapterConfiguration ネットワーク アダプターの属性と動作を表します。このクラスは、Distributed Management Task Force (DMTF) CIM ネットワーク仕様の承認後はサポートされることが保証されません。
Win32_NetworkAdapterSetting ネットワーク アダプターとその構成設定を関連付けます。
パワークラス
電源サブカテゴリは、電源、バッテリー、およびこれらのデバイスに関連するイベントを表すクラスをグループ化します。
クラスの説明
Win32_AssociatedBattery 論理デバイスとそれが使用しているバッテリーを関連付けます。
Win32_Battery コンピューター システムに接続されているバッテリーを表します。
Win32_CurrentProbe 電流監視センサー (電流計) のプロパティを表します。
Win32_PortableBattery ノートブック コンピューターに使用されるモバイル バッテリーなどのポータブル バッテリーのプロパティを表します。
Win32_PowerManagementEvent 電源状態の変更によって生じる電源管理イベントを表します。
Win32_UninterruptiblePowerSupply 無停電電源装置 (UPS) の機能と管理能力を表します。
Win32_VoltageProbe 電圧センサー (電子電圧計) のプロパティを表します。
印刷クラス
「印刷」サブカテゴリは、プリンター、プリンター構成、および印刷ジョブを表すクラスをグループ化します。
クラスの説明
Win32_DriverForDevice プリンターをプリンター ドライバーに関連付けます。
Win32_Printer Windows コンピュータ システムに接続され、メディア上に視覚イメージを再生できるデバイスを表します。
Win32_PrinterConfiguration プリンター デバイスの構成を定義します。
Win32_PrinterController プリンターとプリンターが接続されているローカル デバイスを関連付けます。
Win32_PrinterDriver Win32_Printer インスタンスのドライバーを表します。
Win32_PrinterDriverDll ローカル プリンターとそのドライバー ファイル (ドライバー自体ではありません) を関連付けます。
Win32_PrinterSetting プリンターとその構成設定を関連付けます。
Win32_PrintJob Windows アプリケーションによって生成された印刷ジョブを表します。
Win32_TCPIPPrinterPort TCP/IP サービス アクセス ポイントを表します。
電話教室
Telephony サブカテゴリは、単純な古い電話モデム デバイスとそれに関連するシリアル接続を表すクラスをグループ化します。
クラスの説明
Win32_POTSModem Windows システム上の Plain Old Telephone Service (POTS) モデムのサービスと特性を表します。
Win32_POTSModemToSerialPort モデムとモデムが使用するシリアル ポートを関連付けます。
ビデオおよびモニタークラス
ビデオとモニターのサブカテゴリは、モニター、ビデオ カード、およびそれらに関連する設定を表すクラスをグループ化します。
クラスの説明
Win32_DesktopMonitor コンピュータ システムに接続されているモニタまたは表示デバイスの種類を表します。
Win32_DisplayConfiguration Windows システム上のディスプレイ デバイスの構成情報を表します。このクラスは廃止されました。このクラスの代わりに、Win32_VideoController、Win32_DesktopMonitor、および CIM_VideoControllerResolution クラスのプロパティを使用します。
Win32_DisplayControllerConfiguration Windows システムのビデオ アダプタ構成情報を表します。このクラスは廃止されました。このクラスの代わりに、Win32_VideoController、Win32_DesktopMonitor、および CIM_VideoControllerResolution クラスのプロパティを使用します。
Win32_VideoConfiguration このクラスは Windows XP 以降では削除されています。このクラスの代わりに、Win32_VideoController、Win32_DesktopMonitor、および CIM_VideoControllerResolution クラスに含まれるプロパティを使用してください。
Win32_VideoController Windows コンピュータ システム上のビデオ コントローラの機能と管理能力を表します。
Win32_VideoSettings ビデオ コントローラーとそれに適用できるビデオ設定を関連付けます。
各クラスには、次のような対応するデータ構造があります。
グラフィックスカード
クラス Win32_VideoController : CIM_PCVideoController
{
uint16 AcceleratorCapabilities[];
文字列AdapterCompatibility;
stringAdapterDACType;
uint32 アダプターRAM;
uint16 の可用性。
文字列 CapabilityDescriptions[];
文字列キャプション;
uint32 ColorTableEntries;
uint32 ConfigManagerErrorCode;
ブール値 ConfigManagerUserConfig;
文字列作成クラス名;
uint32 ピクセルあたりの現在のビット数;
uint32 現在の水平解像度;
uint64 現在の色の数;
uint32 現在の列数;
uint32 現在の行数;
uint32 現在のリフレッシュレート;
uint16 現在のスキャンモード;
uint32 現在の垂直解像度;
文字列の説明。
文字列デバイスID;
uint32 デバイス固有のペン;
uint32 ディザタイプ;
日時ドライバー日付;
文字列 DriverVersion;
ブール値エラークリア;
文字列エラー説明;
uint32 ICMIntent;
uint32 ICMメソッド;
文字列InfFilename;
文字列 InfSection;
日時インストール日;
文字列InstalledDisplayDrivers;
uint32 最後のエラーコード;
uint32 MaxMemorySupported;
uint32 MaxNumberControlled;
uint32 MaxRefreshRate;
uint32 MinRefreshRate;
ブール値のモノクロ。
文字列名;
uint16 カラープレーンの数;
uint32 ビデオページ数;
文字列 PNPDeviceID;
uint16 PowerManagementCapabilities[];
ブール値 PowerManagementSupported;
uint16 プロトコルがサポートされています。
uint32 予約済みシステムパレットエントリ;
uint32 仕様バージョン;
文字列ステータス;
uint16 ステータス情報;
文字列 SystemCreationClassName;
文字列システム名;
uint32 システムパレットエントリ;
datetimeTimeOfLastReset;
uint16 ビデオアーキテクチャ;
uint16 ビデオメモリタイプ;
uint16 ビデオモード;
文字列VideoModeDescription;
文字列ビデオプロセッサ;
};
サウンドカードなど
クラス Win32_SoundDevice : CIM_LogicalDevice
{
uint16 の可用性。
文字列キャプション;
uint32 ConfigManagerErrorCode;
ブール値 ConfigManagerUserConfig;
文字列作成クラス名;
文字列の説明。
文字列デバイスID;
uint16 DMABufferSize;
ブール値エラークリア;
文字列エラー説明;
日時インストール日;
uint32 最後のエラーコード;
文字列メーカー;
uint32 MPU401アドレス;
文字列名;
文字列 PNPDeviceID;
uint16 PowerManagementCapabilities[];
ブール値 PowerManagementSupported;
文字列製品名;
文字列ステータス;
uint16 ステータス情報;
文字列 SystemCreationClassName;
文字列システム名;
};
クラス Win32_PrintJob : CIM_Job
{
文字列キャプション;
文字列データ型;
文字列の説明。
文字列ドキュメント;
文字列ドライバー名;
日時経過時間;
文字列HostPrintQueue;
日時インストール日;
uint32 ジョブ ID;
文字列ジョブステータス;
文字列名;
文字列通知;
文字列の所有者。
uint32 ページ印刷済み;
文字列パラメータ;
文字列プリントプロセッサ;
uint32 優先度;
uint32 サイズ;
日時開始時刻;
文字列ステータス;
uint32 ステータスマスク;
日時送信時間;
uint32 合計ページ数;
datetime untilTime;
};
のように
wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate}) を設定します。
InstancesOf(Win32_PrintJob)
タスクリストの印刷などの情報を取得できます
VB の場合、API は主にシステムのハードウェアおよびソフトウェアの情報を取得するために使用されます。たとえば、ドライバー、グラフィック カード、共有情報などを取得するために WMI を使用できるようになります。