이제 PowerShell을 통한 WMI명령 사용 방법을 확인해 보자.
PowerShell을 관리자 모드로 실행
명령입력 (Win32_PnPSignedDriver의 모든 정보 획득)
Get-CimInstance -Query 'Select * from Win32_PnPSignedDriver' >> result
result.txt로 파일로 결과를 저장하는 이유는 출력 값이 너무 많기 때문에
파일로 저장해서 확인하는것이 훨씬 좋기 때문이다.
위 명령은 WMICodeCrateor를 사용했을 때 아래와 동일하다.
Namespace에서 CIMV2를 선택,Class에는 Win32_PnPSignedDriver선택
그리고 Property항목에서는 listbox에 있는 항목들을 전체 선택
(마우스로 첫번째 항목을 클릭하고 Shift키를 누른채로 마지막 항목 선택)
WMI : Windows Management Instrumentation
CIM : Common Information Model
참조 : https://www.ipswitch.com/blog/get-ciminstance-vs-get-wmiobject-whats-the-difference
아래 화면은 WMI와 CIM을 이용한 파워셀 명령 수행 결과 이다. 둘다
동일한 값을 출력한다. 그럼, 이 둘은 어떤 차이가 있는가?
정리하면 WMI는 기존의 CIM인터페이스의 MS버전이었고, 현재는 MS가 기존
CIM에 확장된 기능을 추가해서 새로운 CIM인터페이스를 사용한다.
따라서 이제부터는 Get-WminObject가 아닌 Get-CimInstance를 사용해야
된다는 말이다.
CimInstance를 통한 방법은 다음과 같다.
Get-CimInstance -class Win32_Tpm -namespace root\CIMV2\Security\MicrosoftTpm
위 명령은 현재 장치에서 DeviceClass가 USB란 이름을 포함하는 모든 장치를
가지고 오는 것이다.