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]

... 151  152  153  154  155  156  157  158  159  160  161  [162]  163  164  165  ...
NoWriterDateCnt.TitleFile(s)
999정성태2/28/201146584개발 환경 구성: 108. RemoteFX - Windows 7 가상 머신에서 DirectX 9c 환경을 제공 [5]
998정성태2/27/201120282Team Foundation Server: 42. TFS Application-Tier만 재설치
996정성태2/12/201137734디버깅 기술: 35. windbg - 분석 예: 시작하자마자 비정상 종료하는 프로세스 - NullReferenceException
995정성태2/11/201156258.NET Framework: 205. 코드(C#)를 통한 풀 덤프 만드는 방법 [4]
994정성태2/10/201136212디버깅 기술: 34. Windbg - ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.4200.dll, Win32 error 0n2 [1]
993정성태2/10/201128525개발 환경 구성: 107. 하나의 WPF 프로젝트를 WinExe / Library로 빌드하는 방법
992정성태10/15/201129375개발 환경 구성: 106. VSS(Volume Shadow Service)를 이용한 Hyper-V VM 백업/복원 [2]
991정성태2/6/201148853개발 환경 구성: 105. 풀 덤프 파일을 남기는 방법 [4]
990정성태2/2/201134003개발 환경 구성: 104. Visual C++ Custom Build Tool 사용예 [1]파일 다운로드1
989정성태2/1/201130514개발 환경 구성: 103. DOS batch - 동기 방식으로 원격 서비스 제어
988정성태1/30/201126699개발 환경 구성: 102. MSBuild - DefineConstants에 다중 전처리 값 설정
987정성태1/29/201139859디버깅 기술: 33. PDB Symbol 로드 오류 - Cannot find or open the PDB file. [2]
986정성태1/26/201131298.NET Framework: 204. 분리된 ThreadPool 사용 - Smart Thread Pool
985정성태1/25/201127945디버깅 기술: 32. 인증서로 서명된 닷넷 어셈블리의 실행 지연 현상
984정성태1/25/201122658개발 환경 구성: 101. SharePoint 2010 - Form Design
983정성태1/23/201127710제니퍼 .NET: 15. 눈으로 확인하는 maxWorkerThreads, minFreeThreads 설정값 [1]
982정성태1/22/201125009개발 환경 구성: 100. SharePoint 2010 - iPad 친화적인 게시판 만들기 (사용자 지정 목록) [1]
981정성태1/19/201120886개발 환경 구성: 99. SharePoint 2010 - 웹 애플리케이션 생성 시 고려해야 할 점. [1]
980정성태1/19/201132369개발 환경 구성: 98. SharePoint 2010 - Office Web Apps 설치
979정성태1/18/201125005개발 환경 구성: 97. SharePoint 2010 팀 사이트 구성
978정성태1/16/201131971.NET Framework: 203. VPN 자동 연결 및 Router 설정 추가
977정성태1/12/201131306개발 환경 구성: 96. SharePoint 2010 설치 [5]
976정성태1/11/201153948오류 유형: 111. IIS - 500.19 오류 (0x8007000d)
975정성태1/10/201128200.NET Framework: 202. CLR JIT 컴파일러가 생성한 기계어 코드 확인하는 방법 [3]파일 다운로드1
974정성태1/8/201126981.NET Framework: 201. 윈폼 TreeView - Bold 폰트 설정 후 텍스트가 잘리는 문제 [1]파일 다운로드1
973정성태1/7/201126316.NET Framework: 200. IIS Metabase와 ServerManager 개체 활용파일 다운로드1
... 151  152  153  154  155  156  157  158  159  160  161  [162]  163  164  165  ...