खोज…


टिप्पणियों

CIM बनाम WMI

PowerShell 3.0 के रूप में, PowerShell, WMI और CIM में प्रबंधन कक्षाओं के साथ काम करने के दो तरीके हैं। PowerShell 1.0 और 2.0 ने केवल WMI- मॉड्यूल का समर्थन किया जो अब नए और बेहतर CIM- मॉड्यूल द्वारा सुपरसाइड किया गया है। PowerShell के बाद के रिलीज़ में, WMI-cmdlets को निकाल दिया जाएगा।

CIM और WMI- मॉड्यूल की तुलना:

CIM-cmdlet WMI-cmdlet यह क्या करता है
Get-CimInstance Get-WmiObject एक वर्ग के लिए CIM / WMI-ऑब्जेक्ट्स प्राप्त करता है
आह्वान-CimMethod आह्वान-WmiMethod CIM / WMI- श्रेणी पद्धति लागू करता है
रजिस्टर-CimIndicationEvent रजिस्टर-WmiEvent एक CIM / WMI-वर्ग के लिए रजिस्टरों की घटना
निकालें-CimInstance निकालें-WmiObject CIM / WMI- ऑब्जेक्ट निकालें
सेट CimInstance सेट WmiInstance अद्यतन / बचत CIM / WMI- ऑब्जेक्ट
Get-CimAssociatedInstance एन / ए संबद्ध उदाहरण (लिंक की गई वस्तु / कक्षाएं) प्राप्त करें
Get-CimClass Get-WmiObject -List सूची CIM / WMI- वर्ग
नई CimInstance एन / ए नई CIM- ऑब्जेक्ट बनाएँ
Get-CimSession एन / ए CIM- सत्रों को सूचीबद्ध करता है
नई CimSession एन / ए नया CIM-session बनाएँ
नई CimSessionOption एन / ए सत्र विकल्पों के साथ ऑब्जेक्ट बनाता है; प्रोटोकॉल, एन्कोडिंग, एन्क्रिप्शन को अक्षम करना आदि ( New-CimSession साथ उपयोग के लिए)
निकालें-CimSession एन / ए निकालता है / CIM- सत्र रोकता है

अतिरिक्त संसाधन

क्या मुझे Windows PowerShell के साथ CIM या WMI का उपयोग करना चाहिए? @ अरे, स्क्रिप्टिंग गाइ! ब्लॉग

वस्तुओं को छोड़ना

CIM / WMI का उपयोग आमतौर पर किसी डिवाइस पर जानकारी या कॉन्फ़िगरेशन को क्वेरी करने के लिए किया जाता है। Thof एक वर्ग जो कॉन्फ़िगरेशन, प्रक्रिया, उपयोगकर्ता आदि का प्रतिनिधित्व करता है। PowerShell में इन वर्गों और उदाहरणों तक पहुँचने के कई तरीके हैं, लेकिन सबसे आम तरीके Get-CimInstance (CIM) या Get-WmiObject (WMI) cmdlets का उपयोग करके हैं।

CIM-class के लिए सभी ऑब्जेक्ट्स को सूचीबद्ध करें

आप एक वर्ग के सभी उदाहरणों को सूचीबद्ध कर सकते हैं।

3.0

CIM:

> Get-CimInstance -ClassName Win32_Process

ProcessId Name                         HandleCount WorkingSetSize VirtualSize  
--------- ----                         ----------- -------------- -----------  
0         System Idle Process          0           4096           65536        
4         System                       1459        32768          3563520      
480       Secure System                0           3731456        0            
484       smss.exe                     52          372736         2199029891072
....
....

WMI:

Get-WmiObject -Class Win32_Process

एक फिल्टर का उपयोग करना

आप केवल CIM / WMI- श्रेणी के विशिष्ट उदाहरण प्राप्त करने के लिए फ़िल्टर लागू कर सकते हैं। फ़िल्टर WQL (डिफ़ॉल्ट) या CQL (ऐड- -QueryDialect CQL ) का उपयोग करके लिखे गए हैं। -Filter का उपयोग करता है WHERE एक पूर्ण WQL / CQL-क्वेरी के भाग।

3.0

CIM:

Get-CimInstance -ClassName Win32_Process -Filter "Name = 'powershell.exe'"

ProcessId Name           HandleCount WorkingSetSize VirtualSize  
--------- ----           ----------- -------------- -----------  
4800      powershell.exe 676         88305664       2199697199104

WMI:

Get-WmiObject -Class Win32_Process -Filter "Name = 'powershell.exe'"

...
Caption                    : powershell.exe
CommandLine                : "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" 
CreationClassName          : Win32_Process
CreationDate               : 20160913184324.393887+120
CSCreationClassName        : Win32_ComputerSystem
CSName                     : STACKOVERFLOW-PC
Description                : powershell.exe
ExecutablePath             : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
ExecutionState             : 
Handle                     : 4800
HandleCount                : 673
....

WQL-क्वेरी का उपयोग करना:

आप WQL / CQL-क्वेरी का उपयोग क्वेरी और फ़िल्टर इंस्टेंस के लिए भी कर सकते हैं।

3.0

CIM:

Get-CimInstance -Query "SELECT * FROM Win32_Process WHERE Name = 'powershell.exe'"

ProcessId Name           HandleCount WorkingSetSize VirtualSize  
--------- ----           ----------- -------------- -----------  
4800      powershell.exe 673         88387584       2199696674816

एक अलग नामस्थान में वस्तुओं को छोड़ना:

3.0

CIM:

> Get-CimInstance -Namespace "root/SecurityCenter2" -ClassName AntiVirusProduct


displayName              : Windows Defender
instanceGuid             : {D68DDC3A-831F-4fae-9E44-DA132C1ACF46}
pathToSignedProductExe   : %ProgramFiles%\Windows Defender\MSASCui.exe
pathToSignedReportingExe : %ProgramFiles%\Windows Defender\MsMpeng.exe
productState             : 397568
timestamp                : Fri, 09 Sep 2016 21:26:41 GMT
PSComputerName           : 

WMI:

> Get-WmiObject -Namespace "root\SecurityCenter2" -Class AntiVirusProduct

__GENUS                  : 2
__CLASS                  : AntiVirusProduct
__SUPERCLASS             : 
__DYNASTY                : AntiVirusProduct
__RELPATH                : AntiVirusProduct.instanceGuid="{D68DDC3A-831F-4fae-9E44-DA132C1ACF46}"
__PROPERTY_COUNT         : 6
__DERIVATION             : {}
__SERVER                 : STACKOVERFLOW-PC
__NAMESPACE              : ROOT\SecurityCenter2
__PATH                   : \\STACKOVERFLOW-PC\ROOT\SecurityCenter2:AntiVirusProduct.instanceGuid="{D68DDC3A-831F-4fae-9E44-DA132C1ACF46}"
displayName              : Windows Defender
instanceGuid             : {D68DDC3A-831F-4fae-9E44-DA132C1ACF46}
pathToSignedProductExe   : %ProgramFiles%\Windows Defender\MSASCui.exe
pathToSignedReportingExe : %ProgramFiles%\Windows Defender\MsMpeng.exe
productState             : 397568
timestamp                : Fri, 09 Sep 2016 21:26:41 GMT
PSComputerName           : STACKOVERFLOW-PC

कक्षाएं और नाम स्थान

CIM और WMI में कई वर्ग उपलब्ध हैं जिन्हें कई नामस्थानों में विभाजित किया गया है। विंडोज में सबसे आम (और डिफ़ॉल्ट) नामस्थान root/cimv2 । Righ वर्ग खोजने के लिए, यह सभी को सूचीबद्ध करने या खोज करने के लिए उपयोगी हो सकता है।

उपलब्ध कक्षाओं की सूची बनाएं

आप सभी उपलब्ध कक्षाओं को कंप्यूटर पर डिफ़ॉल्ट नाम स्थान ( root/cimv2 ) में सूचीबद्ध कर सकते हैं।

3.0

CIM:

Get-CimClass

WMI:

Get-WmiObject -List

एक वर्ग के लिए खोजें

आप वाइल्डकार्ड का उपयोग करके विशिष्ट वर्गों की खोज कर सकते हैं। Ex: शब्द process वाली कक्षाएं ज्ञात कीजिए।

3.0

CIM:

> Get-CimClass -ClassName "*Process*"

   NameSpace: ROOT/CIMV2

CimClassName                        CimClassMethods      CimClassProperties                                                           
------------                        ---------------      ------------------                                                           
Win32_ProcessTrace                  {}                   {SECURITY_DESCRIPTOR, TIME_CREATED, ParentProcessID, ProcessID...}           
Win32_ProcessStartTrace             {}                   {SECURITY_DESCRIPTOR, TIME_CREATED, ParentProcessID, ProcessID...}           
Win32_ProcessStopTrace              {}                   {SECURITY_DESCRIPTOR, TIME_CREATED, ParentProcessID, ProcessID...}           
CIM_Process                         {}                   {Caption, Description, InstallDate, Name...}                                 
Win32_Process                       {Create, Terminat... {Caption, Description, InstallDate, Name...}                                 
CIM_Processor                       {SetPowerState, R... {Caption, Description, InstallDate, Name...}                                 
Win32_Processor                     {SetPowerState, R... {Caption, Description, InstallDate, Name...}
...

WMI:

Get-WmiObject -List -Class "*Process*"

एक अलग नामस्थान में कक्षाओं की सूची बनाएं

रूट नेमस्पेस को बस root कहा जाता root-NameSpace पैरामीटर का उपयोग करके आप अन्य नामस्थान में कक्षाएं सूचीबद्ध कर सकते हैं।

3.0

CIM:

> Get-CimClass -Namespace "root/SecurityCenter2"   

   NameSpace: ROOT/SecurityCenter2

CimClassName                        CimClassMethods      CimClassProperties                                                           
------------                        ---------------      ------------------
....                                                   
AntiSpywareProduct                  {}                   {displayName, instanceGuid, pathToSignedProductExe, pathToSignedReportingE...
AntiVirusProduct                    {}                   {displayName, instanceGuid, pathToSignedProductExe, pathToSignedReportingE...
FirewallProduct                     {}                   {displayName, instanceGuid, pathToSignedProductExe, pathToSignedReportingE...

WMI:

Get-WmiObject -Class "__Namespace" -Namespace "root"

उपलब्ध नामस्थानों की सूची बनाएं

उपलब्ध चाइल्ड-नेमस्पेस ऑफ़ root (या किसी अन्य नेमस्पेस) को खोजने के लिए, उस नामस्थान के लिए __NAMESPACE में ऑब्जेक्ट क्वेरी करें।

3.0

CIM:

> Get-CimInstance -Namespace "root" -ClassName "__Namespace"

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

WMI:

Get-WmiObject -List -Namespace "root"


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow