WMI は、エンタープライズ環境で管理情報にアクセスするための標準化されたテクノロジを開発するための業界推奨事項です。この情報には、システム メモリの状態、現在インストールされているクライアント アプリケーションのリスト、およびクライアントのステータスに関するその他のデータが含まれます。
WMI は、統一された標準ベースの拡張可能なオブジェクト指向インターフェイスを使用する、スケーラブルなシステム管理アーキテクチャです。これは、システム管理者情報および基盤となる WMI API と対話するための標準的な方法を提供し、主にシステム管理アプリケーション開発者およびシステム管理者がシステム管理情報にアクセスして操作するために使用します。
WMI を使用すると、システム情報を整理および管理するためのツールを生成できるため、システム管理者はシステムのアクティビティをより詳細に監視できます。
WMI は、Microsoft Windows オペレーティング システムに組み込まれた豊富なシステム管理サービス セットを提供しており、現在、情報技術運用および製品サポート組織に包括的な管理機能を提供するために、多数のアプリケーション、サービス、デバイスで使用されています。 WMI ベースの管理システムを使用すると、より信頼性の高いコンピューティング環境とより高いシステム信頼性がもたらされ、企業の経費が節約されます。
WMI によって提供される多数の仕様により、Microsoft Exchange、Microsoft SQL Server、Microsoft Internet Information Services (IIS) などの多くのハイエンド アプリケーションに対して次の管理タスクが実装されます。
1. アプリケーションのパフォーマンスを監視する
2. ボトルネックや障害を検出する
3. アプリケーションの管理と構成
4. アプリケーション データのクエリ (オブジェクト リレーショナル トラバーサルとクエリを使用)
5. シームレスなローカルまたはリモート管理操作を実行する
以下では、例を使用して WMI の強力な機能を説明します。 vb6 を列として取り上げます。
参照「Microsoft WMI Scripting V1.1 ライブラリ」
コードは次のとおりです。
Option ExplicitDim WithEvents Sink As SWbemSinkDim j As Integer' 関数: wmi コンポーネントを使用してコンピュータ情報を取得します。各小さな関数は、誰でも確認できるように個別に記述されています。 sドライブ名StringDim sValue As StringDim dblSize As DoubleDim Obj As Variant Dim lIndex As Long Set oWMINameSpace = GetObject("winmgmts:") 'ドライブ情報の取得エラー再開 NextSet ObjSet = oWMINameSpace.InstancesOf("Win32_DiskDrive") ObjSet List5 のオブジェクト。 .Caption & " - " & BytesToMegabytes(Obj.Size) & " GB"Next '各ドライブの詳細情報を取得On Error GoTo ErrorHandler'Set oWMINameSpace = GetObject("winmgmts:")Set oLogicalDiskSet = oWMINameSpace.InstancesOf("Win32_LogicalDisk")For Each oLogicalDisk In oLogicalDiskSet On Error次の sDrive を再開 = oLogicalDisk.deviceid ListView1.ListItems.Add , , sDrive lIndex = ListView1.ListItems.Count sValue = oLogicalDisk.Description & "" ListView1.ListItems(lIndex).SubItems(1) = sValue sValue = oLogicalDisk.FileSystem & "" ListView1.ListItems(lIndex).SubItems(2) = sValue sValue = oLogicalDisk.VolumeName & "" ListView1.ListItems(lIndex).SubItems(3) = sValue sValue = oLogicalDisk.VolumeSerialNumber & "" ListView1.ListItems(lIndex).SubItems (4) = sValue sValue = oLogicalDisk.Size & "" If IsNumeric(sValue) ThendblSize = BytesToMegabytes(CDbl(sValue))sValue = CStr(dblSize) & " MB" End If ListView1.ListItems(lIndex).SubItems(5) = sValueNext CleanUp: oLogicalDisk = NothingSet を設定しますoLogicalDiskSet = NothingSet oWMINameSpace = NothingExit Sub ErrorHandler:MsgBox "" & Err.Description GoTo CleanUp End Sub Private Sub Command1_Click()Unload MeEnd Sub Private Function BytesToMegabytes(Bytes As Double) As Double Dim dblAns As Double dblAns = (バイト / 1024) / 1024 バイトからメガバイト = Format(dblAns, "###,###,##0.00")End Function Private Sub Command2_Click()Dim oWMINameSpace As SWbemServicesDim SystemSet As VariantDim System As VariantDim ObjSet As VariantDim Obj As Variant Set oWMINameSpace = GetObject("winmgmts:" )'オペレーティング システム セット SystemSet = oWMINameSpace.InstancesOf("Win32_OperatingSystem") For Each System In SystemSet List1.AddItem System.Caption List1.AddItem System.Manufacturing List1.AddItem System.BuildType & "" 'List1.AddItem System.Version List1.AddItem が取れないようですWin9x System.SerialNumberNext'cpuSet ObjSet = の下に出力されます。 oWMINameSpace.InstancesOf("Win32_Processor") ObjSet 内の各オブジェクトについて List2.AddItem Obj.Caption List2.AddItem Obj.currentlockspeed & " Mhz"Next End Sub Private Sub Command3_Click()Dim oWMINameSpace As SWbemServicesDim ObjSet As VariantDim Obj As VariantDim アダプター As Variant 'メモリーセットoWMINameSpace = GetObject("winmgmts:")Set ObjSet = oWMINameSpace.InstancesOf("Win32_PhysicalMemory")Dim i As String For each Obj In ObjSet List3.AddItem BytesToMegabytes(Obj.capacity) & " MB" & " Chip"Next 'ネットワーク カードシンクのセット = 新しい SWbemSink アダプターのセット = GetObject("winmgmts:")Adapter.InstancesOfAsync Sink、"Win32_NetworkAdapter" End Sub Private Sub Form_Load()j = 0End Sub Private Sub Sink_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet) Dim Adapter As Variant'すべてのアダプター情報を取得 Set Adaptor = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & j & "") List4.AddItem Adapter.Description If IsNull(Adapter.MACAddress) then List4.AddItem "MAC アドレスなし" List4.AddItem " " Else List4.AddItem "Mac: " & Adaptor.MACAddress List4.AddItem ""End If j = j + 1End Sub
この記事はここで紹介されています。詳細については、次の記事を参照してください。 http://technet.microsoft.com/en-us/library/ee198932.aspx