C# WMI 2 - PowerShell

Code April·2022년 7월 7일
0

C#

목록 보기
8/12

이제 PowerShell을 통한 WMI명령 사용 방법을 확인해 보자.

  1. PowerShell을 관리자 모드로 실행

  2. 명령입력 (Win32_PnPSignedDriver의 모든 정보 획득)

Get-CimInstance -Query 'Select * from Win32_PnPSignedDriver' >> result
result.txt로 파일로 결과를 저장하는 이유는 출력 값이 너무 많기 때문에
파일로 저장해서 확인하는것이 훨씬 좋기 때문이다.

위 명령은 WMICodeCrateor를 사용했을 때 아래와 동일하다.
Namespace에서 CIMV2를 선택,Class에는 Win32_PnPSignedDriver선택
그리고 Property항목에서는 listbox에 있는 항목들을 전체 선택
(마우스로 첫번째 항목을 클릭하고 Shift키를 누른채로 마지막 항목 선택)

  1. 명령 입력 (WMI VS CIM)

    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를 사용해야
된다는 말이다.

  1. 명령 입력 (TPM정보 획득)
    TPM의 경우는 Win+R -> tpm.msc라는 별도의 명령을 통해
    정보를 확인할 수 있다.

CimInstance를 통한 방법은 다음과 같다.

Get-CimInstance -class Win32_Tpm -namespace root\CIMV2\Security\MicrosoftTpm

  1. Where절 추가 하기
    Get-CimInstance -Query "Select * from Win32_PnPSignedDriver where DeviceClass like '%USB%'"

위 명령은 현재 장치에서 DeviceClass가 USB란 이름을 포함하는 모든 장치를
가지고 오는 것이다.

profile
Next Level

0개의 댓글