WMI는 기업 환경에서 관리 정보에 액세스하기 위한 표준화된 기술을 개발하기 위한 업계 권장 사항입니다. 이 정보에는 시스템 메모리 상태, 현재 설치된 클라이언트 응용 프로그램 목록 및 클라이언트 상태에 대한 기타 데이터가 포함됩니다.
WMI는 통합된 표준 기반의 확장 가능한 개체 지향 인터페이스를 채택하는 확장 가능한 시스템 관리 아키텍처입니다. 이는 시스템 관리 응용 프로그램 개발자와 시스템 관리자가 시스템 관리 정보에 액세스하고 운영하는 데 주로 사용하는 시스템 관리자 정보 및 기본 WMI API와 상호 작용하는 표준 방법을 제공합니다.
WMI를 사용하면 시스템 정보를 구성하고 관리하는 도구를 생성할 수 있으므로 시스템 관리자는 시스템 활동을 더욱 면밀히 모니터링할 수 있습니다.
WMI는 Microsoft Windows 운영 체제에 내장된 다양한 시스템 관리 서비스 세트를 제공하며 현재는 수많은 응용 프로그램, 서비스 및 장치에서 사용되어 정보 기술 운영 및 제품 지원 조직에 포괄적인 관리 기능을 제공합니다. WMI 기반 관리 시스템을 사용하면 보다 안정적인 컴퓨팅 환경과 더 높은 시스템 안정성을 제공하여 기업 비용을 절감할 수 있습니다.
WMI에서 제공하는 많은 사양은 Microsoft Exchange, Microsoft SQL Server 및 Microsoft 인터넷 정보 서비스(IIS)와 같은 많은 고급 응용 프로그램에 대해 다음과 같은 관리 작업을 구현합니다.
1. 애플리케이션 성능 모니터링
2. 병목 현상 또는 오류 감지
3. 애플리케이션 관리 및 구성
4. 애플리케이션 데이터 쿼리(객체 관계형 순회 및 쿼리 사용)
5. 원활한 로컬 또는 원격 관리 작업 수행
아래에서는 WMI의 강력한 기능을 설명하는 예를 사용합니다. vb6을 열로 사용:
"Microsoft WMI 스크립팅 V1.1 라이브러리" 참조
코드는 다음과 같습니다:
Option ExplicitDim WithEvents Sink As SWbemSinkDim j As Integer' 함수: wmi 구성 요소를 사용하여 컴퓨터 정보를 얻습니다. Private Sub cmdDone_Click()Dim oWMINameSpace As SWbemServicesDim oLogicalDiskSet As SWbemObject Dim ObjSet As VariantDim 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") ObjSet List5의 각 Obj에 대해. .캡션 & " - " & 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 정리: 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") 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") 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를 ObjSet List3.AddItem BytesToMegabytes(Obj.capacity) & " MB" & " Chip"Next '네트워크 카드의 각 Obj에 대한 문자열로 사용 세트 싱크 = 새로운 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 Adapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & j & "") List4.AddItem Adapter.Description If IsNull(Adapter.MACAddress) Then List4.AddItem "MAC 주소 없음" List4.AddItem " " Else List4.AddItem "Mac: " 및 Adapter.MACAddress List4.AddItem ""End If j = j + 1End Sub
이 기사는 여기에 소개되어 있습니다. 자세한 내용은 http://technet.microsoft.com/en-us/library/ee198932.aspx를 참조하세요.