A CIM cmdletek egy külön modulban foglalnak helyet, melynek neve – nem meglepő módon – CIMcmdlets. Ezeket le is kérdezhetjük:
PS C:\> get-command -Module CimCmdlets | Sort-Object -Property noun
CommandType Name Version
----------- ---- -------
Cmdlet Import-BinaryMiLog 1.0.0.0
Cmdlet Export-BinaryMiLog 1.0.0.0
Cmdlet Get-CimAssociatedInstance 1.0.0.0
Cmdlet Get-CimClass 1.0.0.0
Cmdlet Register-CimIndicationEvent 1.0.0.0
Cmdlet New-CimInstance 1.0.0.0
Cmdlet Remove-CimInstance 1.0.0.0
Cmdlet Get-CimInstance 1.0.0.0
Cmdlet Set-CimInstance 1.0.0.0
Cmdlet Invoke-CimMethod 1.0.0.0
Cmdlet Remove-CimSession 1.0.0.0
Cmdlet Get-CimSession 1.0.0.0
Cmdlet New-CimSession 1.0.0.0
Cmdlet New-CimSessionOption 1.0.0.0
Láthatjuk, hogy a korábbi WMI cmdletekhez képest több parancs áll rendelkezésünkre. Az univerzális Get‑WMIObject helyett, mellyel a WMI példányokat és osztályokat is le tudtuk kérdezni, most két külön cmdletet kapunk: Get-CIMInstance és Get-CIMClass .
Példaként nézzük, hogy milyen osztályaink vannak, amelyeknek a nevében szerepel az „operatingsystem” kifejezés:
PS C:\> Get-CimClass -ClassName *operatingsystem*
NameSpace: ROOT/cimv2
CimClassName CimClassMethods CimClassProperties
------------ --------------- ------------------
CIM_OperatingSystem {Reboot, Shutdown} {Caption, Descript...
Win32_OperatingSystem {Reboot, Shutdown... {Caption, Descript...
Win32_OperatingSystemQFE {} {Antecedent, Depen...
Win32_OperatingSystemAutochkSetting {} {Element, Setting}
Win32_SystemOperatingSystem {} {GroupComponent, P...
CIM_OperatingSystemSoftwareFeature {} {GroupComponent, P...
Nézzük konkrétan meg a Win32_OperatingSystem osztály várhatóan egy példányát:
PS C:\> $r = Get-CimInstance -ClassName Win32_OperatingSystem
PS C:\> $r
SystemDirectory Organization BuildNumber RegisteredUser SerialNumber
--------------- ------------ ----------- -------------- ------------
C:\WINDOWS\system32 10586 Tibi 00329-10280-000...
Láthatjuk, hogy a nézet táblázatos lett a korábbi lista helyett. A példány típusa is új:
PS C:\> $r.GetType().fullname
Microsoft.Management.Infrastructure.CimInstance
Ha megnézzük a tulajdonságokat részletesen, akkor ott is felfigyelhetünk néhány érdekességre:
PS C:\> $r | fl *
Status : OK
Name : Microsoft Windows 10 Enterprise|C:
\WINDOWS|\Device\Harddisk0\Partiti
on2
FreePhysicalMemory : 13250684
FreeSpaceInPagingFiles : 16777216
FreeVirtualMemory : 29285920
Caption : Microsoft Windows 10 Enterprise
Description :
InstallDate : 2015.12.19. 3:49:15
CreationClassName : Win32_OperatingSystem
CSCreationClassName : Win32_ComputerSystem
CSName : STLENO
CurrentTimeZone : 60
Distributed : False
LastBootUpTime : 2016.03.14. 10:18:37
LocalDateTime : 2016.03.14. 16:41:51
MaxNumberOfProcesses : 4294967295
MaxProcessMemorySize : 137438953344
…
WindowsDirectory : C:\WINDOWS
PSComputerName :
CimClass : root/cimv2:Win32_OperatingSystem
CimInstanceProperties : {Caption, Description, InstallDate
, Name...}
CimSystemProperties : Microsoft.Management.Infrastructur
e.CimSystemProperties
Nem látunk a tulajdonságok listájában aláhúzással kezdődő tulajdonságneveket! Ilyenekre gondolok:
__GENUS : 2
__CLASS : Win32_OperatingSystem
__SUPERCLASS : CIM_OperatingSystem
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_OperatingSystem=@
__PROPERTY_COUNT : 64
__DERIVATION : {CIM_OperatingSystem, CIM_LogicalE
lement, CIM_ManagedSystemElement}
__SERVER : STLENO
__NAMESPACE : root\cimv2
__PATH : \\STLENO\root\cimv2:Win32_Operatin
gSystem=@
Ebből a szempontból a legfájóbb a __Path hiánya, amivel közvetlenül meg lehetne címezni ezt a példányt. Pedig a helye megvan a CimSystemProperties tulajdonság alatt:
PS C:\> $r.CimSystemProperties
Namespace ServerName ClassName Path
--------- ---------- --------- ----
root/cimv2 STLENO Win32_OperatingSystem