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)
13031정성태4/15/20226809.NET Framework: 1194. C# - IdealProcessor와 ProcessorAffinity의 차이점
13030정성태4/15/20226498오류 유형: 804. 정규 표현식 오류 - Quantifier {x,y} following nothing.
13029정성태4/14/20226903Windows: 203. iisreset 후에도 이전에 설정한 전역 환경 변수가 w3wp.exe에 적용되는 문제
13028정성태4/13/20226815.NET Framework: 1193. (appsettings.json처럼) web.config의 Debug/Release에 따른 설정 적용
13027정성태4/12/20227103.NET Framework: 1192. C# - 환경 변수의 변화를 알리는 WM_SETTINGCHANGE Win32 메시지 사용법파일 다운로드1
13026정성태4/11/20228634.NET Framework: 1191. C 언어로 작성된 FFmpeg Examples의 C# 포팅 전체 소스 코드 [3]
13025정성태4/11/20227977.NET Framework: 1190. C# - ffmpeg(FFmpeg.AutoGen)를 이용한 vaapi_encode.c, vaapi_transcode.c 예제 포팅
13024정성태4/7/20226468.NET Framework: 1189. C# - 런타임 환경에 따라 달라진 AppDomain.GetCurrentThreadId 메서드
13023정성태4/6/20226769.NET Framework: 1188. C# - ffmpeg(FFmpeg.AutoGen)를 이용한 transcoding.c 예제 포팅 [3]
13022정성태3/31/20226673Windows: 202. 윈도우 11 업그레이드 - "PC Health Check"를 통과했지만 여전히 업그레이드가 안 되는 경우 해결책
13021정성태3/31/20226843Windows: 201. Windows - INF 파일을 이용한 장치 제거 방법
13020정성태3/30/20226583.NET Framework: 1187. RDP 접속 시 WPF UserControl의 Unloaded 이벤트 발생파일 다운로드1
13019정성태3/30/20226576.NET Framework: 1186. Win32 Message를 Code로부터 메시지 이름 자체를 구하고 싶다면?파일 다운로드1
13018정성태3/29/20227117.NET Framework: 1185. C# - Unsafe.AsPointer가 반환한 포인터는 pinning 상태일까요? [5]
13017정성태3/28/20226918.NET Framework: 1184. C# - GC Heap에 위치한 참조 개체의 주소를 알아내는 방법 - 두 번째 이야기 [3]
13016정성태3/27/20227782.NET Framework: 1183. C# 11에 추가된 ref 필드의 (우회) 구현 방법파일 다운로드1
13015정성태3/26/20229123.NET Framework: 1182. C# 11 - ref struct에 ref 필드를 허용 [1]
13014정성태3/23/20227696VC++: 155. CComPtr/CComQIPtr과 Conformance mode 옵션의 충돌 [1]
13013정성태3/22/20226026개발 환경 구성: 641. WSL 우분투 인스턴스에 파이썬 2.7 개발 환경 구성하는 방법
13012정성태3/21/20225349오류 유형: 803. C# - Local '...' or its members cannot have their address taken and be used inside an anonymous method or lambda expression
13011정성태3/21/20226828오류 유형: 802. 윈도우 운영체제에서 웹캠 카메라 인식이 안 되는 경우
13010정성태3/21/20225754오류 유형: 801. Oracle.ManagedDataAccess.Core - GetTypes 호출 시 "Could not load file or assembly 'System.DirectoryServices.Protocols...'" 오류
13009정성태3/20/20227382개발 환경 구성: 640. docker - ibmcom/db2 컨테이너 실행
13008정성태3/19/20226677VS.NET IDE: 176. 비주얼 스튜디오 - 솔루션 탐색기에서 프로젝트를 선택할 때 csproj 파일이 열리지 않도록 만드는 방법
13007정성태3/18/20226261.NET Framework: 1181. C# - Oracle.ManagedDataAccess의 Pool 및 그것의 연결 개체 수를 알아내는 방법파일 다운로드1
13006정성태3/17/20227338.NET Framework: 1180. C# - ffmpeg(FFmpeg.AutoGen)를 이용한 remuxing.c 예제 포팅
... 16  17  18  19  20  21  22  23  [24]  25  26  27  28  29  30  ...