WMIC ( 윈도우 관리 도구 )
Windows Management Instrumentation
윈도우 관리 도구(Windows Management Instrumentation, WMI)는 인스트루먼테이션된 구성 요소들이 정보과 알림을 제공함을 통해 운영 체제 인터페이스를 제공하는 윈도우 드라이버 모델의 확장 집합을 이룬다.
WMI는 마이크로소프트의 WBEM과 CIM 표준(DMTF)의 구현체이다.
WMI는 VB스크립트나 윈도우 파워셸과 같은 스크립트 언어들이 마이크로소프트 윈도우 개인용 컴퓨터와 서버들을 로컬이나 원격으로 관리할 수 있게 해준다. WMI는 윈도우 2000 이상의 마이크로소프트 운영 체제에 미리 설치되어 있다. 윈도우 NT, 윈도우 95, 윈도우 98용으로 다운로드가 가능하다.
* 명령 줄 인터페이스(cli)를 제공한다. ( C:\Windows\System32\wbem\WMIC.exe)
CMD창에서 wmic /?라고 처서 나온 명령어 사용법이다.
wmic [전역 스위치] <명령>
#1. 전역 스위치 종류
/NAMESPACE 별칭을 사용할 네임스페이스의 경로입니다.
/ROLE 별칭 정의가 포함된 역할의 경로입니다.
/NODE 별칭을 사용할 서버입니다.
/IMPLEVEL 클라이언트 가장 수준입니다.
/AUTHLEVEL 클라이언트 인증 수준입니다.
/LOCALE 클라이언트가 사용할 언어 ID입니다.
/PRIVILEGES 모든 권한을 사용하거나 사용하지 않도록 설정합니다.
/TRACE 디버깅 정보를 STDERR로 출력합니다.
/RECORD 모든 입력 명령과 출력을 기록합니다.
/INTERACTIVE 대화형 모드를 설정하거나 원래대로 설정합니다.
/FAILFAST FailFast 모드를 설정하거나 원래대로 설정합니다.
/USER 세션 중에 사용할 사용자입니다.
/PASSWORD 세션 로그인에 사용할 암호입니다.
/OUTPUT 출력 리디렉션 모드를 지정합니다.
/APPEND 출력 리디렉션 모드를 지정합니다.
/AGGREGATE 집계 모드를 설정하거나 원래대로 설정합니다.
/AUTHORITY 연결에 대한 <인증 형식>을 지정합니다.
/?[:<BRIEF|FULL>] 사용법을 표시합니다.
특정 전역 스위치에 대한 자세한 내용을 보려면 '스위치 이름 /?'를 입력하십시오.
#2. 별칭(명령) 종류
ALIAS - 로컬 시스템에서 사용 가능한 별칭에 대한 액세스
BASEBOARD - 기판(마더보드 또는 시스템 보드라고도 함) 관리입니다.
BIOS - BIOS(기본 입출력 서비스) 관리입니다.
BOOTCONFIG - 부트 구성 관리입니다.
CDROM - CD-ROM 관리입니다.
COMPUTERSYSTEM - 컴퓨터 시스템 관리입니다.
CPU - CPU 관리입니다.
CSPRODUCT - SMBIOS의 컴퓨터 시스템 제품 정보입니다.
DATAFILE - 데이터 파일 관리입니다.
DCOMAPP - DCOM 응용 프로그램 관리입니다.
DESKTOP - 사용자 데스크톱 관리입니다.
DESKTOPMONITOR - 데스크톱 모니터 관리입니다.
DEVICEMEMORYADDRESS - 장치 메모리 주소 관리입니다.
DISKDRIVE - 실제 디스크 드라이브 관리입니다.
DISKQUOTA - NTFS 볼륨의 디스크 공간 사용입니다.
DMACHANNEL - DMA(직접 메모리 액세스) 채널 관리입니다.
ENVIRONMENT - 시스템 환경 설정 관리입니다.
FSDIR - 파일 시스템 디렉터리 항목 관리입니다.
GROUP - 그룹 계정 관리입니다.
IDECONTROLLER - IDE 컨트롤러 관리입니다.
IRQ - IRQ(인터럽트 요청 라인) 관리입니다.
JOB - 일정 서비스를 사용하여 예약된 작업에 대한 액세스를 제공합니다.
LOADORDER - 실행 종속성을 정의하는 시스템 서비스 관리입니다.
LOGICALDISK - 로컬 저장 장치 관리입니다.
LOGON - 로그온 세션입니다.
MEMCACHE - 캐시 메모리 관리입니다.
MEMORYCHIP - 메모리 칩 정보입니다.
MEMPHYSICAL - 컴퓨터 시스템의 실제 메모리 관리입니다.
NETCLIENT - 네트워크 클라이언트 관리입니다.
NETLOGIN - (특정 사용자의) 네트워크 로그인 정보 관리입니다.
NETPROTOCOL - 프로토콜(및 네트워크 특성) 관리입니다.
NETUSE - 활성 네트워크 연결 관리입니다.
NIC - NIC(네트워크 인터페이스 컨트롤러) 관리입니다.
NICCONFIG - 네트워크 어댑터 관리입니다.
NTDOMAIN - NT 도메인 관리입니다.
NTEVENT - NT 이벤트 로그에 있는 항목입니다.
NTEVENTLOG - NT 이벤트 로그 파일 관리입니다.
ONBOARDDEVICE - 마더보드(시스템 보드)에 기본 제공된 일반 어댑터 장치 관리입니다.
OS - 설치된 운영 체제 관리입니다.
PAGEFILE - 가상 메모리 파일 스와핑 관리입니다.
PAGEFILESET - 페이지 파일 설정 관리입니다.
PARTITION - 실제 디스크의 분할 영역 관리입니다.
PORT - I/O 포트 관리입니다.
PORTCONNECTOR - 실제 연결 포트 관리입니다.
PRINTER - 프린터 장치 관리입니다.
PRINTERCONFIG - 프린터 장치 구성 관리입니다.
PRINTJOB - 인쇄 작업 관리입니다.
PROCESS - 프로세스 관리입니다.
PRODUCT - 설치 패키지 작업 관리입니다.
QFE - QFE(quick fix engineering)입니다.
QUOTASETTING - 볼륨의 디스크 할당량 정보를 설정합니다.
RDACCOUNT - 원격 데스크톱 연결 사용 권한 관리입니다.
RDNIC - 특정 네트워크 어댑터의 원격 데스크톱 연결 관리입니다.
RDPERMISSIONS - 특정 원격 데스크톱 연결에 대한 사용 권한입니다.
RDTOGGLE - 원격으로 원격 데스크톱 수신기를 켜거나 끕니다.
RECOVEROS - 운영 체제에 오류가 있을 때 메모리에서 수집할 정보입니다.
REGISTRY - 컴퓨터 시스템 레지스트리 관리입니다.
SCSICONTROLLER - SCSI 컨트롤러 관리입니다.
SERVER - 서버 정보 관리입니다.
SERVICE - 서비스 응용 프로그램 관리입니다.
SHADOWCOPY - 섀도 복사본 관리입니다.
SHADOWSTORAGE - 섀도 복사본 저장소 영역 관리입니다.
SHARE - 공유 리소스 관리입니다.
SOFTWAREELEMENT - 시스템에 설치된 소프트웨어 제품의 요소 관리입니다.
SOFTWAREFEATURE - SoftwareElement의 소프트웨어 제품 하위 집합 관리입니다.
SOUNDDEV - 사운드 장치 관리입니다.
STARTUP - 사용자가 컴퓨터 시스템에 로그온할 때 자동으로 실행되는 명령 관리입니다.
SYSACCOUNT - 시스템 계정 관리입니다.
SYSDRIVER - 기본 서비스에 대한 시스템 드라이버 관리입니다.
SYSTEMENCLOSURE - 실제 시스템 엔클로저 관리입니다.
SYSTEMSLOT - 포트, 슬롯, 주변 장치 등을 비롯한 실제 연결점 및 소유 연결점 관리입니다.
TAPEDRIVE - 테이프 드라이브 관리입니다.
TEMPERATURE - 온도 센서(전자식 온도계) 데이터 관리입니다.
TIMEZONE - 표준 시간대 데이터 관리입니다.
UPS - UPS(무정전 전원 공급 장치) 관리입니다.
USERACCOUNT - 사용자 계정 관리입니다.
VOLTAGE - 전압 센서(전자식 전압계) 데이터 관리입니다.
VOLUME - 로컬 저장소 볼륨 관리입니다.
VOLUMEQUOTASETTING - 디스크 할당량 설정을 특정 디스크 볼륨에 연결합니다.
VOLUMEUSERQUOTA - 사용자 단위 저장소 볼륨 할당량 관리입니다.
WMISET - WMI 서비스 작업 매개 변수 관리입니다.
특정 별칭에 대한 자세한 내용을 보려면 '별칭 /?'를 입력하십시오.
#3. 그 외 사용가능한 명령
CLASS - 전체 WMI 스키마로 이동합니다.
PATH - 전체 WMI 개체 경로로 이동합니다.
CONTEXT - 모든 전역 스위치의 상태를 표시합니다.
QUIT/EXIT - 프로그램을 끝냅니다.
CLASS/PATH/CONTEXT에 대한 자세한 내용을 보려면 (CLASS | PATH | CONTEXT) /?를 입력하십시오.
wmic 명령어 활용 예시
cmd창에서 wmic를 치고나서 cli로 들어가서 관련 명령어들을 작성해도 되고,
cmd창에서 바로 wmic를 치고나서 관련 명령어를 이어서 적어도 결과가 나온다.
OS 관련 정보를 간략하게 출력하기
os list brief /format:list
OS 관련 전체 정보를 출력하기
os get /format:list
OS 시스템을 종료하거나 리부팅하기
os where “status=’ok'” call shutdown
os where “status=’ok'” call reboot
CPU 관련 정보를 간략하게 출력
cpu list brief /format:list
CPU 관련 전체 정보를 출력
cpu get /format:list
LOGICALDISK 관련 정보를 확인
logicaldisk where drivetype=3 get name,size,freespace,systemname /format:list
VOLUME 볼륨 정보를 확인
volume list brief /format:list
LOGON 모든 로그온 세션의 목록을 확인
logon list full /format:list | more
ENVIRONMENT 환경설정 목록을 확인
environment list full /format:list | more
DESKTOP 데스크탑 화면 설정을 확인
desktop list full /format:list | more
SERVICE 정보를 확인
service list brief /format:list
SERVICE %ora% 구문이 들어가있는 이름의 서비스를 확인
service where “name like ‘%ora%'” list brief
SERVICE 특정 서비스를 시작하거나 중지
service where name=”service_name” call startservice
service where name=”service_name” call stopservice
BIOS 컴퓨터 S/N 넘버 확인
bios get serialnumber
MEMORYCHIP 메모리 확인하기
memorychip get banklabel, capacity
PATH 프로세서 CPU 정보 확인
path win32_processor get numberofcores, numberoflogicalprocessors, processorid
PATH 그래픽카드 GPU 확인
path win32_VideoController get name
PROCESS processid가 7332인 프로세스의 정보를 간략하게 확인
process where processid=7332 list brief /format:list
PROCESS 해당 프로세스를 종료
process where processid=7836 delete
PROCESS 해당 프로세스를 디버깅
process where processid=5256 call attachdebugger
PROCESS 해당 cmd 명령을 실행합니다
process call create “cmd.exe /c ipconfig” >> result.txt
PROCESS iexplore.exe 를 종료합니다
process where name=”iexplore.exe” call terminate
PROCESS notepad.exe 의 우선순위를 64로 설정
process where name=”notepad.exe” call setpriority 64
CSPRODUCT 장비의 사양을 확인
csproduct list brief /format:list
DISKDRIVE 디스크 모델명을 확인
diskdrive list brief /format:list
STARTUP 시작프로그램 목록을 확인
startup list brief
PRODUCT 설치된 프로그램 리스트를 확인
product get name
PRODUCT 설치된 프로그램을 삭제
product where name=”Adobe Reader 9″ call uninstall
USERACCOUNT 이름에 ad가 포함된 계정을 확인
useraccount where “name like ‘%ad%'” list full
USERACCOUNT 관리자(administrator)의 이름을 hellcat으로 변경
useraccount where name=”administrator” call rename name=”hellcat”
SYSDRIVER 시스템 드라이버를 간략하게 확인
sysdriver list brief /format:list
wmic 명령어로 얻을 수 있는 정보 (더 자세히!)
1. wmic computersystem : 컴퓨터 정보
wmic COMPUTERSYSTEM get DNSHostName, Manufacturer, Model, NumberOfLogicalProcessors
- DNS 호스트 이름
- 컴퓨터 제조사
- 컴퓨터 모델
- 프로세서 개수
2. wmic CPU : CPU 정보
wmic CPU get Name, NumberOfCores, ProcessorId
- CPU 이름
- 코어 개수
- 프로세서 ID
3. wmic logicaldisk : 로컬디스크 정보
wmic LOGICALDISK get Caption, DriveType, FileSystem, FreeSpace, Size
- 로컬 디스크 이름
- 디스크 타입
- 디스크 파일시스템
- 사용가능한 디스크 공간
- 디스크 총 사이즈
4. wmic nic : 네트워크 정보
wmic NIC get AdapterType, AdapterTypeId, MACAddress, NetEnabled
- 어댑터 종류
- 어댑터 종류 아이디
- 맥주소
- 네트워크통신여부
0 {'Ethernet 802.3'}
1 {'Token Ring 802.5'}
2 {'Fiber Distributed Data Interface (FDDI)'}
3 {'Wide Area Network (WAN)'}
4 {'LocalTalk'}
5 {'Ethernet using DIX header format'}
6 {'ARCNET'}
7 {'ARCNET (878.2)'}
8 {'ATM'}
9 {'Wireless'}
10 {'Infrared Wireless'}
11 {'Bpc'}
12 {'CoWan'}
13 {'1394'}
5. wmic OS : os 정보
wmic OS get OSArchitecture,Manufacturer, NumberOfProcesses, NumberOfUsers, SystemDrive
- OS 구조 (64비트/32비트)
- OS 제조사
- 프로세스 개수
- 유저 개수
- 시스템 드라이브 (os가 설치되어 있는 드라이브)
6. wmic process : 프로세스 정보
wmic PROCESS get Name, ParentProcessId, Priority, ProcessId
- 프로세스 이름
- 부모 프로세스 id
- 프로세스 우선순위
- 프로세스 id
[ 참고 및 출처 ]
WMI 정의 : 위키피디아, WMI
WMI 활용방법 : https://m.blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=gyurse&logNo=220783759267&proxyReferer=
[ 참조하면 좋은 사이트]
WMI
https://medium.com/@pawar.ritesh4u/get-your-hands-on-wmic-windows-management-interface-command-commands-89149787c362
WMI
https://powershell.one/wmi/root/cimv2/win32_networkadapter