WMI هي توصية صناعية لتطوير تقنية موحدة للوصول إلى المعلومات الإدارية في بيئات المؤسسات. تتضمن هذه المعلومات حالة ذاكرة النظام، وقائمة بتطبيقات العميل المثبتة حاليًا، وبيانات أخرى حول حالة العميل.
WMI عبارة عن بنية إدارة نظام قابلة للتطوير تستخدم واجهة موجهة للكائنات موحدة وقائمة على المعايير وقابلة للتوسيع. وهو يوفر طريقة قياسية للتفاعل مع معلومات مسؤول النظام وواجهة برمجة تطبيقات WMI الأساسية، والتي يستخدمها بشكل أساسي مطورو تطبيقات إدارة النظام ومسؤولو النظام للوصول إلى معلومات إدارة النظام وتشغيلها.
يمكن استخدام 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 للحصول على معلومات الكمبيوتر. تتم كتابة كل وظيفة صغيرة بشكل منفصل ليتمكن الجميع من التحقق منها. محرك الأقراص باسم 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 عند الخطأ استئناف التالي 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 أمر فرعي خاص1_Click()Unload MeEnd Sub وظيفة خاصة BytesToMegabytes (البايتات مزدوجة) كـ dblAns مزدوجة خافتة كـ 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") لكل نظام في 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") لكل كائن في قائمة ObjSet2.AddItem Obj.Caption List2.AddItem Obj.currentclockspeed & "Mhz"Next End Sub أمر فرعي خاص3_Click()Dim oWMINameSpace كـ SWbemServicesDim ObjSet كـ VariantDim Obj كـ VariantDim محول كمتغير ""مجموعة الذاكرة"." owMINameSpace = GetObject("winmgmts:")Set ObjSet = owMINameSpace.InstancesOf("Win32_PhysicalMemory")تعتيم كسلسلة لكل كائن في قائمة ObjSet3.AddItem BytesToMegabytes(Obj.capacity) & "MB" و"رقاقة" بطاقة الشبكة التالية مجموعة بالوعة = محول مجموعة 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.ISWbemNamedV AlueSet) محول خافت باسم المتغير'الحصول على كافة معلومات المحول تعيين المحول = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & j & "") List4.AddItem محول. الوصف إذا كان Null(Adapter.MACAddress) ثم List4.AddItem "لا يوجد عنوان MAC" List4.AddItem " " آخر List4.AddItem "Mac: " & Adaptor.MACAddress List4.AddItem ""End If j = j + 1End Subتم تقديم هذه المقالة هنا لمزيد من المعلومات، يمكنك الرجوع إلى هذه المقالة: http://technet.microsoft.com/en-us/library/ee198932.aspx.