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]

... 136  137  138  139  140  141  142  143  144  145  [146]  147  148  149  150  ...
NoWriterDateCnt.TitleFile(s)
1403정성태1/14/201331975.NET Framework: 357. .NET 4.5의 2GB 힙 한계 극복
1402정성태1/14/201332537오류 유형: 166. SmtpClient.Send 오류 - net_io_connectionclosed
1401정성태1/11/201329866.NET Framework: 356. (공개키를 담은) 자바의 key 파일을 닷넷의 RSACryptoServiceProvider에서 사용하는 방법 [2]파일 다운로드1
1400정성태1/10/201329009Windows: 69. 작업표시줄의 터치 키보드(Touch Keyboard) 없애는 방법 [3]
1399정성태1/9/201324642.NET Framework: 355. 닷넷 환경이 왜 C/C++보다 느릴까요? [8]
1398정성태1/8/201325084오류 유형: 165. 새로 설치한 Visual Studio 2010의 Team Explorer 실행시 비정상 종료가 된다면?
1397정성태1/3/201328571Windows: 68. 윈도우 설치 ISO 이미지를 USB 하드에 적용하는 방법 [2]
1396정성태12/27/201229796사물인터넷: 2. 넷두이노 - 4.2.0 펌웨어 업데이트 방법 [1]파일 다운로드1
1395정성태12/26/201220652.NET Framework: 354. x64 - AspCompat과 STA COM 개체가 성능에 미치는 영향
1394정성태12/25/201222087.NET Framework: 353. x86 - AspCompat과 STA COM 개체가 성능에 미치는 영향
1393정성태12/25/201222470.NET Framework: 352. x64에서 필수로 지정하도록 바뀐 STAThread 특성 [2]
1392정성태12/21/201232479사물인터넷: 1. .NET Micro Framework - 넷두이노 플러스 [7]
1391정성태12/21/201225873.NET Framework: 351. JavaScriptSerializer, DataContractJsonSerializer, Json.NET [3]파일 다운로드1
1390정성태12/20/201223929.NET Framework: 350. String 데이터를 Stream으로 변환하는 방법 [2]
1389정성태12/12/201222264.NET Framework: 349. .NET Thread 인스턴스로부터 COM Apartment 유형 확인하는 방법파일 다운로드1
1388정성태12/12/201223330.NET Framework: 348. .NET x64 응용 프로그램에서 Teb 주소를 구하는 방법파일 다운로드1
1387정성태12/12/201228237VC++: 64. x64 Visual C++에서 TEB 주소 구하는 방법
1386정성태12/12/201229948디버깅 기술: 53. windbg - 덤프 파일로부터 네이티브 DLL을 추출하는 방법 [1]
1385정성태12/12/201225030디버깅 기술: 52. Windbg - The version of SOS does not match the version of CLR you are debugging.
1384정성태12/12/201229862개발 환경 구성: 178. System32 폴더의 64비트 DLL을 32비트 Depends.exe에서 보는 방법
1383정성태12/10/201225763개발 환경 구성: 177. 기업용 메신저를 위한 Office Communicator Server 2007 설치 [1]
1382정성태12/8/201228626개발 환경 구성: 176. WebPagetest 서버 - 설치 및 테스트
1381정성태12/5/201227113.NET Framework: 347. C# - 프로세스(EXE) 수준의 Singleton 개체 생성 [2]파일 다운로드1
1380정성태11/28/201237146.NET Framework: 346. 닷넷 개발자에게 Node.js의 의미 [17]
1379정성태11/26/201230312.NET Framework: 345. C# 부호(+, -)에 대한 비트 변환
1378정성태11/22/201231619Java: 14. 안드로이드 - Hello World 실습 [7]
... 136  137  138  139  140  141  142  143  144  145  [146]  147  148  149  150  ...