Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 2개 있습니다.)

WMI Namespace를 열거하고, 그 안에 정의된 클래스를 열거하는 방법

검색해 보면 Namespace 열거에 대해 Get-WmiObject 명령어를 사용하면 된다고 합니다.

Quick Hits: List All Available WMI Namespaces Using PowerShell
; https://learn-powershell.net/2014/05/09/quick-hits-list-all-available-wmi-namespaces-using-powershell/

따라서 다음과 같이 PS shell에서 실행하면,

PS C:\Windows\System32> Get-WmiObject -Namespace Root -Class __Namespace | Select-Object -Property Name

Name
----
subscription
DEFAULT
CIMV2
msdtc
Cli
MicrosoftIISv2
SECURITY
HyperVCluster
SecurityCenter2
RSOP
PEH
WebAdministration
StandardCimv2
WMI
directory
Policy
virtualization
Interop
Hardware
ServiceModel
SecurityCenter
Microsoft
aspnet
Appv

최상위 WMI 네임스페이스를 열거하게 됩니다. 참고로, 계층을 이루는 네임스페이스를 하위까지 모두 열거하고 싶다면 "Quick Hits: List All Available WMI Namespaces Using PowerShell" 블로거가 공개한 명령어를,

Get All WMI Namespaces
; https://gallery.technet.microsoft.com/scriptcenter/Get-All-WMI-Namespaces-5471ad75

이렇게 사용하면 됩니다. ^^

PS C:\ps> Import-Module .\Get-WMINamespace.ps1
PS C:\ps> Get-WMINamespace -Recurse

Computername Namespace
------------ ---------
TESTPC        ROOT\subscription
TESTPC        ROOT\subscription\ms_411
TESTPC        ROOT\subscription\ms_409
TESTPC        ROOT\subscription\ms_412
TESTPC        ROOT\DEFAULT
TESTPC        ROOT\DEFAULT\ms_411
TESTPC        ROOT\DEFAULT\ms_409
TESTPC        ROOT\DEFAULT\ms_412
TESTPC        ROOT\CIMV2
TESTPC        ROOT\CIMV2\mdm
TESTPC        ROOT\CIMV2\mdm\dmmap
TESTPC        ROOT\CIMV2\mdm\MS_411
TESTPC        ROOT\CIMV2\mdm\MS_409
TESTPC        ROOT\CIMV2\mdm\MS_412
TESTPC        ROOT\CIMV2\Security
TESTPC        ROOT\CIMV2\Security\MicrosoftTpm
TESTPC        ROOT\CIMV2\Security\MicrosoftVolumeEncryption
TESTPC        ROOT\CIMV2\ms_411
TESTPC        ROOT\CIMV2\power
TESTPC        ROOT\CIMV2\power\ms_411
TESTPC        ROOT\CIMV2\power\ms_409
TESTPC        ROOT\CIMV2\power\ms_412
TESTPC        ROOT\CIMV2\ms_409
TESTPC        ROOT\CIMV2\TerminalServices
TESTPC        ROOT\CIMV2\TerminalServices\ms_411
TESTPC        ROOT\CIMV2\TerminalServices\ms_409
TESTPC        ROOT\CIMV2\TerminalServices\ms_412
TESTPC        ROOT\CIMV2\ms_412
TESTPC        ROOT\msdtc
TESTPC        ROOT\Cli
TESTPC        ROOT\Cli\MS_411
TESTPC        ROOT\Cli\MS_409
TESTPC        ROOT\Cli\MS_412
TESTPC        ROOT\MicrosoftIISv2
TESTPC        ROOT\MicrosoftIISv2\MS_411
TESTPC        ROOT\MicrosoftIISv2\MS_409
TESTPC        ROOT\MicrosoftIISv2\MS_412
TESTPC        ROOT\SECURITY
TESTPC        ROOT\HyperVCluster
TESTPC        ROOT\HyperVCluster\v2
TESTPC        ROOT\HyperVCluster\v2\ms_411
TESTPC        ROOT\HyperVCluster\v2\ms_409
TESTPC        ROOT\HyperVCluster\v2\ms_412
TESTPC        ROOT\SecurityCenter2
TESTPC        ROOT\RSOP
TESTPC        ROOT\RSOP\User
TESTPC        ROOT\RSOP\User\ms_411
TESTPC        ROOT\RSOP\User\ms_409
TESTPC        ROOT\RSOP\User\S_1_5_21_1280880998_3941059...
TESTPC        ROOT\RSOP\User\ms_412
TESTPC        ROOT\RSOP\Computer
TESTPC        ROOT\RSOP\Computer\ms_411
TESTPC        ROOT\RSOP\Computer\ms_409
TESTPC        ROOT\RSOP\Computer\ms_412
TESTPC        ROOT\PEH
TESTPC        ROOT\WebAdministration
TESTPC        ROOT\WebAdministration\MS_411
TESTPC        ROOT\WebAdministration\MS_409
TESTPC        ROOT\WebAdministration\MS_412
TESTPC        ROOT\StandardCimv2
TESTPC        ROOT\StandardCimv2\MS_411
TESTPC        ROOT\StandardCimv2\MS_409
TESTPC        ROOT\StandardCimv2\MS_412
TESTPC        ROOT\StandardCimv2\embedded
TESTPC        ROOT\StandardCimv2\embedded\MS_411
TESTPC        ROOT\StandardCimv2\embedded\MS_409
TESTPC        ROOT\StandardCimv2\embedded\MS_412
TESTPC        ROOT\WMI
TESTPC        ROOT\WMI\ms_411
TESTPC        ROOT\WMI\ms_409
TESTPC        ROOT\WMI\ms_412
TESTPC        ROOT\directory
TESTPC        ROOT\directory\LDAP
TESTPC        ROOT\directory\LDAP\ms_411
TESTPC        ROOT\directory\LDAP\ms_409
TESTPC        ROOT\directory\LDAP\ms_412
TESTPC        ROOT\Policy
TESTPC        ROOT\Policy\ms_411
TESTPC        ROOT\Policy\ms_409
TESTPC        ROOT\Policy\ms_412
TESTPC        ROOT\virtualization
TESTPC        ROOT\virtualization\v2
TESTPC        ROOT\virtualization\v2\ms_411
TESTPC        ROOT\virtualization\v2\ms_409
TESTPC        ROOT\virtualization\v2\ms_412
TESTPC        ROOT\Interop
TESTPC        ROOT\Interop\ms_411
TESTPC        ROOT\Interop\ms_409
TESTPC        ROOT\Interop\ms_412
TESTPC        ROOT\Hardware
TESTPC        ROOT\Hardware\ms_411
TESTPC        ROOT\Hardware\ms_409
TESTPC        ROOT\Hardware\ms_412
TESTPC        ROOT\ServiceModel
TESTPC        ROOT\ServiceModel\ms_411
TESTPC        ROOT\SecurityCenter
TESTPC        ROOT\Microsoft
TESTPC        ROOT\Microsoft\SqlServer
TESTPC        ROOT\Microsoft\SqlServer\ComputerManagement15
TESTPC        ROOT\Microsoft\SqlServer\ComputerManagemen...
TESTPC        ROOT\Microsoft\SqlServer\ServerEvents
TESTPC        ROOT\Microsoft\SqlServer\ServerEvents\MSSQ...
TESTPC        ROOT\Microsoft\SqlServer\ComputerManagement14
TESTPC        ROOT\Microsoft\SqlServer\ComputerManagemen...
TESTPC        ROOT\Microsoft\SqlServer\ComputerManagement13
TESTPC        ROOT\Microsoft\SqlServer\ComputerManagemen...
TESTPC        ROOT\Microsoft\HomeNet
TESTPC        ROOT\Microsoft\protectionManagement
TESTPC        ROOT\Microsoft\Windows
TESTPC        ROOT\Microsoft\Windows\RemoteAccess
TESTPC        ROOT\Microsoft\Windows\RemoteAccess\Client
TESTPC        ROOT\Microsoft\Windows\RemoteAccess\Client...
TESTPC        ROOT\Microsoft\Windows\RemoteAccess\Client...
TESTPC        ROOT\Microsoft\Windows\RemoteAccess\Client...
TESTPC        ROOT\Microsoft\Windows\Dns
TESTPC        ROOT\Microsoft\Windows\Dns\MS_411
TESTPC        ROOT\Microsoft\Windows\Dns\MS_409
TESTPC        ROOT\Microsoft\Windows\Dns\MS_412
TESTPC        ROOT\Microsoft\Windows\Powershellv3
TESTPC        ROOT\Microsoft\Windows\Powershellv3\MS_411
TESTPC        ROOT\Microsoft\Windows\Powershellv3\MS_409
TESTPC        ROOT\Microsoft\Windows\Powershellv3\MS_412
TESTPC        ROOT\Microsoft\Windows\Hgs
TESTPC        ROOT\Microsoft\Windows\Hgs\MS_411
TESTPC        ROOT\Microsoft\Windows\Hgs\MS_409
TESTPC        ROOT\Microsoft\Windows\Hgs\MS_412
TESTPC        ROOT\Microsoft\Windows\WindowsUpdate
TESTPC        ROOT\Microsoft\Windows\WindowsUpdate\MS_411
TESTPC        ROOT\Microsoft\Windows\WindowsUpdate\MS_409
TESTPC        ROOT\Microsoft\Windows\WindowsUpdate\MS_412
TESTPC        ROOT\Microsoft\Windows\DeviceGuard
TESTPC        ROOT\Microsoft\Windows\DeviceGuard\MS_411
TESTPC        ROOT\Microsoft\Windows\DeviceGuard\MS_409
TESTPC        ROOT\Microsoft\Windows\DeviceGuard\MS_412
TESTPC        ROOT\Microsoft\Windows\TaskScheduler
TESTPC        ROOT\Microsoft\Windows\TaskScheduler\MS_411
TESTPC        ROOT\Microsoft\Windows\TaskScheduler\MS_409
TESTPC        ROOT\Microsoft\Windows\TaskScheduler\MS_412
TESTPC        ROOT\Microsoft\Windows\DesiredStateConfigu...
TESTPC        ROOT\Microsoft\Windows\DesiredStateConfigu...
TESTPC        ROOT\Microsoft\Windows\SmbWitness
TESTPC        ROOT\Microsoft\Windows\Wdac
TESTPC        ROOT\Microsoft\Windows\Wdac\MS_411
TESTPC        ROOT\Microsoft\Windows\Wdac\MS_409
TESTPC        ROOT\Microsoft\Windows\Wdac\MS_412
TESTPC        ROOT\Microsoft\Windows\winrm
TESTPC        ROOT\Microsoft\Windows\AppBackgroundTask
TESTPC        ROOT\Microsoft\Windows\AppBackgroundTask\M...
TESTPC        ROOT\Microsoft\Windows\AppBackgroundTask\M...
TESTPC        ROOT\Microsoft\Windows\AppBackgroundTask\M...
TESTPC        ROOT\Microsoft\Windows\PS_MMAgent
TESTPC        ROOT\Microsoft\Windows\PS_MMAgent\MS_411
TESTPC        ROOT\Microsoft\Windows\PS_MMAgent\MS_409
TESTPC        ROOT\Microsoft\Windows\PS_MMAgent\MS_412
TESTPC        ROOT\Microsoft\Windows\Storage
TESTPC        ROOT\Microsoft\Windows\Storage\PT
TESTPC        ROOT\Microsoft\Windows\Storage\PT\Alt
TESTPC        ROOT\Microsoft\Windows\Storage\MS_411
TESTPC        ROOT\Microsoft\Windows\Storage\MS_409
TESTPC        ROOT\Microsoft\Windows\Storage\Providers_v2
TESTPC        ROOT\Microsoft\Windows\Storage\MS_412
TESTPC        ROOT\Microsoft\Windows\HardwareManagement
TESTPC        ROOT\Microsoft\Windows\HardwareManagement\...
TESTPC        ROOT\Microsoft\Windows\HardwareManagement\...
TESTPC        ROOT\Microsoft\Windows\HardwareManagement\...
TESTPC        ROOT\Microsoft\Windows\SMB
TESTPC        ROOT\Microsoft\Windows\SMB\MS_411
TESTPC        ROOT\Microsoft\Windows\SMB\MS_409
TESTPC        ROOT\Microsoft\Windows\SMB\MS_412
TESTPC        ROOT\Microsoft\Windows\EventTracingManagement
TESTPC        ROOT\Microsoft\Windows\EventTracingManagem...
TESTPC        ROOT\Microsoft\Windows\EventTracingManagem...
TESTPC        ROOT\Microsoft\Windows\EventTracingManagem...
TESTPC        ROOT\Microsoft\Windows\DesiredStateConfigu...
TESTPC        ROOT\Microsoft\Windows\DesiredStateConfigu...
TESTPC        ROOT\Microsoft\Windows\DesiredStateConfigu...
TESTPC        ROOT\Microsoft\Windows\DesiredStateConfigu...
TESTPC        ROOT\Microsoft\Windows\Attestation
TESTPC        ROOT\Microsoft\Windows\Attestation\MS_411
TESTPC        ROOT\Microsoft\Windows\Attestation\MS_409
TESTPC        ROOT\Microsoft\Windows\Attestation\MS_412
TESTPC        ROOT\Microsoft\Windows\CI
TESTPC        ROOT\Microsoft\Windows\CI\MS_411
TESTPC        ROOT\Microsoft\Windows\CI\MS_409
TESTPC        ROOT\Microsoft\Windows\CI\MS_412
TESTPC        ROOT\Microsoft\Windows\DeliveryOptimization
TESTPC        ROOT\Microsoft\Windows\Defender
TESTPC        ROOT\Microsoft\Windows\Defender\MS_411
TESTPC        ROOT\Microsoft\Windows\Defender\MS_409
TESTPC        ROOT\Microsoft\Windows\Defender\MS_412
TESTPC        ROOT\Microsoft\SecurityClient
TESTPC        ROOT\Microsoft\Uev
TESTPC        ROOT\aspnet
TESTPC        ROOT\Appv




다음으로, 특정 네임스페이스에 속한 클래스는 Get-CimClass 명령어를 사용하면 됩니다.

Get-CimClass
; https://docs.microsoft.com/en-us/powershell/module/cimcmdlets/get-cimclass

대개의 경우 결과가 많기 때문에 findstr 등의 필터를 이용하는 것이 좋습니다.

PS C:\Windows\System32> Get-CimClass -Namespace root\WMI | findstr SystemConfig_V2_Network




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 12/15/2020]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2021-12-20 02시16분
[문의드립니다] 안녕하세요 궁금한게 있어서 하나만 문의 드려도될까요? 고수님의 도움이 절실합니다~!
windows 10 pro 사용중인데, 파워쉘 스크립트를 통해 보안패치하는 스크립트를 작성하고 있는데,
New-CimInstance -Namespace root/Microsoft/Windows/WindowsUpdate -ClassName MSFT_WUOperationsSession 이런 형태로 할려고하는데
저는 확인해보니까 root/Microsoft/Windows/WindowsUpdate 이 네임스페이스가 없더라고요. 혹시 이유를 아실까요?
[guest]
2021-12-20 08시40분
아래의 글에 정리했으니 참고하세요. ^^

Windows 10+에서 WMI root/Microsoft/Windows/WindowsUpdate 네임스페이스 제거
; https://www.sysnet.pe.kr/2/0/12884
정성태
2021-12-21 11시42분
[문의드립니다] 오 성태님 친절하고 정확한 답변 정말 감사드립니다~! 한가지만 더 질문 드려도 될까요?
아래와 같은 형태로 Windows Update를 수행하려고 했습니다만, 답변 주신대로 2004 버전부터 WindowsUpdate 네임스페이스가 없어졌는데,
혹시 어떤 다른 방법을 사용할 수 있을지 참고할만한 레퍼런스가 있을까요?

$AU = Invoke-CimMethod -Namespace root/Microsoft/Windows/WindowsUpdate -ClassName MSFT_WUOperations -MethodName ScanForUpdates -Arguments @{SearchCriteria = 'IsInstalled=0'}
if ($AU.Updates.Count -gt 0) {
    Invoke-CimMethod -Namespace root/Microsoft/Windows/WindowsUpdate -ClassName MSFT_WUOperations -MethodName InstallUpdates -Arguments @{Updates = $AU.Updates}
}
[guest]
2021-12-21 02시38분
관련해서는 이미 위의 링크 글에서 마지막에 COM 개체로 해결한다고 설명했습니다. 따라서, 더 이상 WMI를 경유하는 코드는 사용할 수 없고, "Microsoft.Update.Session" 등의 COM 개체를 이용해야 합니다. 그와 관련된 자료를 조사해 보시고, 원하시는 그 동작을 구현하게 되시면 ^^ 님의 블로그에 그 소스 코드를 공개했을 때 아마도 뒤이을 다른 개발자들이 무척 고마워할 것입니다. ^^ (하실 수 있으리라 믿어 의심치 않습니다.)
정성태
2021-12-22 02시18분
[잘보고있습니다] 네 답변 감사합니다~!!
[guest]

... 16  17  18  [19]  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
13147정성태10/25/20224760오류 유형: 823. Visual Studio 2022 - Unable to attach to CoreCLR. The debugger's protocol is incompatible with the debuggee.
13146정성태10/24/20225590.NET Framework: 2060. C# - Java의 Xmx와 유사한 힙 메모리 최댓값 제어 옵션 HeapHardLimit
13145정성태10/21/20225855오류 유형: 822. db2 - Password validation for user db2inst1 failed with rc = -2146500508
13144정성태10/20/20225698.NET Framework: 2059. ClrMD를 이용해 윈도우 환경의 메모리 덤프로부터 닷넷 모듈을 추출하는 방법파일 다운로드1
13143정성태10/19/20226222오류 유형: 821. windbg/sos - Error code - 0x000021BE
13142정성태10/18/20224937도서: 시작하세요! C# 12 프로그래밍
13141정성태10/17/20226708.NET Framework: 2058. [in,out] 배열을 C#에서 C/C++로 넘기는 방법 - 세 번째 이야기파일 다운로드1
13140정성태10/11/20226076C/C++: 159. C/C++ - 리눅스 환경에서 u16string 문자열을 출력하는 방법 [2]
13139정성태10/9/20225909.NET Framework: 2057. 리눅스 환경의 .NET Core 3/5+ 메모리 덤프로부터 모든 닷넷 모듈을 추출하는 방법파일 다운로드1
13138정성태10/8/20227189.NET Framework: 2056. C# - await 비동기 호출을 기대한 메서드가 동기로 호출되었을 때의 부작용 [1]
13137정성태10/8/20225585.NET Framework: 2055. 리눅스 환경의 .NET Core 3/5+ 메모리 덤프로부터 닷넷 모듈을 추출하는 방법
13136정성태10/7/20226159.NET Framework: 2054. .NET Core/5+ SDK 설치 없이 dotnet-dump 사용하는 방법
13135정성태10/5/20226403.NET Framework: 2053. 리눅스 환경의 .NET Core 3/5+ 메모리 덤프를 분석하는 방법 - 두 번째 이야기
13134정성태10/4/20225134오류 유형: 820. There is a problem with AMD Radeon RX 5600 XT device. For more information, search for 'graphics device driver error code 31'
13133정성태10/4/20225452Windows: 211. Windows - (commit이 아닌) reserved 메모리 사용량 확인 방법 [1]
13132정성태10/3/20225321스크립트: 42. 파이썬 - latexify-py 패키지 소개 - 함수를 mathjax 식으로 표현
13131정성태10/3/20227982.NET Framework: 2052. C# - Windows Forms의 데이터 바인딩 지원(DataBinding, DataSource) [2]파일 다운로드1
13130정성태9/28/20225090.NET Framework: 2051. .NET Core/5+ - 에러 로깅을 위한 Middleware가 동작하지 않는 경우파일 다운로드1
13129정성태9/27/20225386.NET Framework: 2050. .NET Core를 IIS에서 호스팅하는 경우 .NET Framework CLR이 함께 로드되는 환경
13128정성태9/23/20227948C/C++: 158. Visual C++ - IDL 구문 중 "unsigned long"을 인식하지 못하는 #import파일 다운로드1
13127정성태9/22/20226409Windows: 210. WSL에 systemd 도입
13126정성태9/15/20227012.NET Framework: 2049. C# 11 - 정적 메서드에 대한 delegate 처리 시 cache 적용
13125정성태9/14/20227202.NET Framework: 2048. C# 11 - 구조체 필드의 자동 초기화(auto-default structs)
13124정성태9/13/20226948.NET Framework: 2047. Golang, Python, C#에서의 CRC32 사용
13123정성태9/8/20227387.NET Framework: 2046. C# 11 - 멤버(속성/필드)에 지정할 수 있는 required 예약어 추가
13122정성태8/26/20227398.NET Framework: 2045. C# 11 - 메서드 매개 변수에 대한 nameof 지원
... 16  17  18  [19]  20  21  22  23  24  25  26  27  28  29  30  ...