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"
รหัสมีดังนี้:
ตัวเลือก ExplicitDim WithEvents Sink As SWbemSinkDim j As Integer' ฟังก์ชัน: ใช้ส่วนประกอบ wmi เพื่อรับข้อมูลคอมพิวเตอร์ แต่ละฟังก์ชันย่อยจะถูกเขียนแยกกันเพื่อให้ทุกคนตรวจสอบ sDrive เป็น StringDim sValue As StringDim dblSize As DoubleDim Obj As Variant Dim lIndex As Long Set oWMINameSpace = GetObject("winmgmts:") 'รับข้อมูลไดรฟ์เมื่อเกิดข้อผิดพลาดต่อ NextSet ObjSet = oWMINameSpace.InstancesOf("Win32_DiskDrive") สำหรับแต่ละ Obj ใน ObjSet List5 .คำบรรยาย & " - " & BytesToMegabytes(Obj.Size) & " GB"ถัดไป 'รับข้อมูลโดยละเอียดของแต่ละไดรฟ์บนข้อผิดพลาด GoTo ErrorHandler'Set oWMINameSpace = GetObject("winmgmts:")Set oLogicalDiskSet = oWMINameSpace.InstancesOf("Win32_LogicalDisk") สำหรับแต่ละ oLogicalDisk ใน 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 การล้างข้อมูล: ตั้งค่า 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 = (Bytes / 1024) / 1,024 ไบต์ถึงเมกะไบต์ = 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") สำหรับแต่ละระบบใน SystemSet List1.AddItem System.Caption List1.AddItem System.Manufacturer List1.AddItem System.BuildType & "" 'ดูเหมือนว่า List1.AddItem System.Version List1.AddItem ไม่สามารถดำเนินการได้ ออกภายใต้ Win9x System.SerialNumberNext'cpuSet ObjSet = oWMINameSpace.InstancesOf("Win32_Processor") สำหรับแต่ละ Obj ใน ObjSet List2.AddItem Obj.Caption List2.AddItem Obj.currentclockspeed & " Mhz"Next End Sub Private Sub Command3_Click()Dim oWMINameSpace As SWbemServicesDim ObjSet As VariantDim Obj As VariantDim Adapter As Variant 'ชุดความทรงจำ oWMINameSpace = GetObject("winmgmts:")Set ObjSet = oWMINameSpace.InstancesOf("Win32_PhysicalMemory")Dim i As String สำหรับแต่ละ Obj ใน ObjSet List3.AddItem BytesToMegabytes(Obj.capacity) & " MB" & " Chip"การ์ดเครือข่ายถัดไป Set Sink = อะแดปเตอร์ชุด SWbemSink ใหม่ = GetObject("winmgmts:")Adapter.InstancesOfAsync Sink, "Win32_NetworkAdapter" สิ้นสุด Sub Private Sub Form_Load()j = 0End Sub Private Sub Sink_OnObjectReady (ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet) Dim เช่น Variant'รับข้อมูลอแด็ปเตอร์ทั้งหมด Set Adapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & j & "") List4.AddItem Adapter.Description ถ้า IsNull(Adapter.MACAddress) จากนั้น List4.AddItem "No MAC Address" List4.AddItem " " รายการอื่น4.AddItem "Mac: " & อะแดปเตอร์ MACAddress List4.AddItem ""สิ้นสุดถ้า j = j + 1สิ้นสุดย่อย
บทความนี้มีการแนะนำที่นี่ สำหรับข้อมูลเพิ่มเติม คุณสามารถดูบทความนี้: http://technet.microsoft.com/en-us/library/ee198932.aspx