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 로컬 오류 재개 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 로컬 오류 재개 NextFor Each obj In wmiObjSetMsgBox obj.VideoProcessorNextEnd Sub메모리 정보
Private Sub wmiPhysicalMemoryInfo()Dim wmiObjSet As SWbemObjectSetDim obj As SWbemObjectSet wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate}) 로컬 오류 발생 시 _InstancesOf(Win32_PhysicalMemory) wmiObjSetDebug.Print BankLabel에서 각 objItem 재개: & objItem.BankLabelDebug.Print 용량: & objItem.CapacityDebug.Print Caption: & objItem.CaptionDebug.Print CreationClassName: & objItem.CreationClassNameDebug.Print DataWidth: & objItem.DataWidthDebug.Print 설명: & 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.ManufacturerDebug.Print 메모리 유형: & objItem.MemoryTypeDebug.Print 모델: & objItem.ModelDebug.Print 이름: & objItem.nameDebug.Print OtherIdentifyingInfo: & objItem.OtherIdentifyingInfoDebug.Print 부품 번호: & objItem.PartNumberDebug.Print PositionInRow: & objItem.PositionInRowDebug.Print PoweredOn: & objItem.PoweredOnDebug.Print 이동식: & objItem.RemovableDebug.Print 교체 가능: & objItem.ReplaceableDebug.Print SerialNumber: & objItem.SerialNumberDebug.Print SKU: & objItem.SKUDebug.Print 속도: & objItem.SpeedDebug.Print 상태: & objItem.StatusDebug.Print 태그: & objItem.TagDebug.Print TotalWidth: & objItem.TotalWidthDebug.Print TypeDetail: & objItem.TypeDetailDebug.Print 버전: & objItem. 버전다음End Sub운영 체제 정보
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를 관리하는 데 사용됩니다.
성능 카운터 형식화된 원시 성능 데이터를 나타내는 클래스입니다.
하드웨어
컴퓨터 시스템 하드웨어 수업
냉각 장치 하위 범주는 계측 가능한 팬, 온도 프로브 및 냉각 장치를 나타내는 클래스를 그룹화합니다.
수업 설명
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_AllocationResource 논리 장치를 시스템 리소스에 연결합니다.
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 IDE(Integrated Drive Electronics) 컨트롤러 장치의 기능을 나타냅니다.
IDE 컨트롤러와 논리 장치를 연결하는 Win32_IDEControllerDevice 연관 클래스입니다.
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_PNPAllocationResource 논리 장치와 시스템 리소스 간의 연결을 나타냅니다.
Win32_PNPDevice 장치(Configuration Manager에 PNPEntity로 알려짐)와 장치가 수행하는 기능을 연결합니다.
Win32_PNPEntity 플러그 앤 플레이 장치의 속성을 나타냅니다.
Win32_PortConnector DB-25 핀 수, Centronics 및 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 허브의 관리 특성을 나타냅니다.
네트워킹 장치 클래스
네트워킹 장치 하위 범주는 네트워크 인터페이스 컨트롤러, 구성 및 설정을 나타내는 클래스를 그룹화합니다.
수업 설명
Win32_NetworkAdapter Windows 시스템의 네트워크 어댑터를 나타냅니다.
Win32_NetworkAdapterConfiguration 네트워크 어댑터의 특성 및 동작을 나타냅니다. DMTF(Distributed Management Task Force) CIM 네트워크 사양이 승인된 후에는 클래스가 지원되지 않을 수 있습니다.
Win32_NetworkAdapterSetting 네트워크 어댑터 및 해당 구성 설정과 관련됩니다.
전력 등급
Power 하위 범주는 전원 공급 장치, 배터리 및 이러한 장치와 관련된 이벤트를 나타내는 클래스를 그룹화합니다.
수업 설명
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 서비스 액세스 지점을 나타냅니다.
전화 통신 수업
전화 통신 하위 범주는 일반 전화 모뎀 장치 및 관련 직렬 연결을 나타내는 클래스를 그룹화합니다.
수업 설명
Win32_POTSModem Windows 시스템의 POTS(Plain Old Telephone Service) 모뎀의 서비스 및 특성을 나타냅니다.
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 AcceleratorCapability[];
문자열 어댑터 호환성;
문자열어댑터DAC유형;
uint32 어댑터RAM;
uint16 가용성;
문자열 CapabilityDescriptions[];
문자열 캡션;
uint32 ColorTableEntries;
uint32 ConfigManagerErrorCode;
부울 ConfigManagerUserConfig;
문자열 CreationClassName;
uint32 CurrentBitsPerPixel;
uint32 CurrentHorizontalResolution;
uint64 CurrentNumberOfColors;
uint32 CurrentNumberOfColumns;
uint32 CurrentNumberOfRows;
uint32 CurrentRefreshRate;
uint16 CurrentScanMode;
uint32 CurrentVerticalResolution;
문자열 설명;
문자열 장치ID;
uint32 DeviceSpecificPens;
uint32 디더 유형;
날짜시간 DriverDate;
문자열 드라이버 버전;
부울 ErrorCleared;
문자열 오류설명;
uint32 ICMIntent;
uint32 ICM방법;
문자열 Inf파일이름;
문자열 InfSection;
날짜/시간 InstallDate;
문자열 InstalledDisplayDrivers;
uint32 LastErrorCode;
uint32 MaxMemory지원;
uint32 MaxNumberControlled;
uint32 MaxRefreshRate;
uint32 MinRefreshRate;
부울 단색;
문자열 이름;
uint16 NumberOfColorPlanes;
uint32 NumberOfVideoPages;
문자열 PNPDeviceID;
uint16 PowerManagementCapability[];
부울 PowerManagementSupported;
uint16 프로토콜 지원;
uint32 ReservedSystemPaletteEntries;
uint32 사양버전;
문자열 상태;
uint16 상태정보;
문자열 SystemCreationClassName;
문자열 시스템이름;
uint32 SystemPaletteEntries;
날짜시간 TimeOfLastReset;
uint16 VideoArchitecture;
uint16 VideoMemoryType;
uint16 비디오모드;
문자열 VideoModeDescription;
문자열 비디오 프로세서;
};
사운드카드 등
클래스 Win32_SoundDevice : CIM_LogicalDevice
{
uint16 가용성;
문자열 캡션;
uint32 ConfigManagerErrorCode;
부울 ConfigManagerUserConfig;
문자열 CreationClassName;
문자열 설명;
문자열 장치ID;
uint16 DMABufferSize;
부울 ErrorCleared;
문자열 오류설명;
날짜/시간 InstallDate;
uint32 LastErrorCode;
문자열 제조업체;
uint32 MPU401주소;
문자열 이름;
문자열 PNPDeviceID;
uint16 PowerManagementCapability[];
부울 PowerManagementSupported;
문자열 제품명;
문자열 상태;
uint16 상태정보;
문자열 SystemCreationClassName;
문자열 시스템이름;
};
클래스 Win32_PrintJob : CIM_Job
{
문자열 캡션;
문자열 데이터 유형;
문자열 설명;
문자열 문서;
문자열 드라이버 이름;
날짜시간 경과시간;
문자열 HostPrintQueue;
날짜/시간 InstallDate;
uint32 작업 ID;
문자열 JobStatus;
문자열 이름;
문자열 알림;
문자열 소유자;
uint32 페이지인쇄됨;
문자열 매개변수;
문자열 인쇄프로세서;
uint32 우선순위;
uint32 크기;
날짜시간 시작시간;
문자열 상태;
uint32 상태마스크;
날짜시간 제출된 시간;
uint32 총페이지수;
날짜시간까지시간;
};
좋다
wmiObjSet = GetObject(winmgmts:{impersonationLevel=impersonate})를 설정합니다.
InstancesOf(Win32_PrintJob)
작업 목록 인쇄 등의 정보를 얻을 수 있습니다.
VB의 경우 API는 주로 시스템 하드웨어 및 소프트웨어 정보를 얻는 데 사용됩니다. 이제 WMI를 사용하여 드라이버/그래픽 카드/공유 정보 등을 얻는 것이 편리하고 효과적입니다.