A CIM cmdletek és CIM objektumok kicsit egyszerűbbé teszik a CIM metódusok meghívását. Példaként nézzük egy megosztás létrehozását! Elsőként vegyük magát a Win32_Share osztályt:
PS C:\> $shareclass = Get-CimClass -ClassName Win32_Share
PS C:\> $shareclass
NameSpace: ROOT/cimv2
CimClassName CimClassMethods CimClassProperties
------------ --------------- ------------------
Win32_Share {Create, SetShare... {Caption, Descript...
A CimClassMethods tulajdonság alatt megtaláljuk az összes metódust:
PS C:\> $shareclass.CimClassMethods
Name ReturnType Parameters Qualif
iers
---- ---------- ---------- ------
Create UInt32 {Access, Description, MaximumAllowed, Name...} {Co...
SetShareInfo UInt32 {Access, Description, MaximumAllowed} {Im...
GetAccessMask UInt32 {} {Im...
Delete UInt32 {} {De...
Nekünk itt most a Create metódus kell, a paraméterezését megismerhetjük a Parameters tulajdonság alatt:
PS C:\> $shareclass.CimClassMethods.Item("Create").parameters
Name CimType Qualifiers Referenc
eClassNa
me
---- ------- ---------- --------
Access Instance {EmbeddedInstance, ID, In, MappingStrings...}
Description String {ID, In, MappingStrings, Optional}
MaximumAllowed UInt32 {ID, In, MappingStrings, Optional}
Name String {ID, In, MappingStrings}
Password String {ID, In, MappingStrings, Optional}
Path String {ID, In, MappingStrings}
Type UInt32 {ID, In, MappingStrings}
Láthatjuk a Qualifiers tulajdonság alatt, hogy melyek a kötelező paraméterek, ezek azok, amelyeknél nem szerepel az Optional minősítés. Ezeket mindenképpen használni kell a metódus meghívásakor. Könnyebbség a CIM cmdleteknél, hogy a metódusok paramétereit hashtábla formában adhatjuk meg, azaz sokkal egyértelműbb, hogy melyik paraméterérték melyik paraméterhez tartozik:
PS C:\> Invoke-CimMethod -ClassName Win32_Share -MethodName Create -Arguments @
{
>> Name = "PSShare"
>> Path = "C:\PowerShell"
>> Type = [uint32] 0
>> }
ReturnValue PSComputerName
----------- --------------
0
Példányok metódusait is ugyanezzel a cmdlettel lehet meghívni. Példaként letörlöm az előbb létrehozott megosztást:
PS C:\> $s = Get-CimInstance -ClassName Win32_Share -Filter 'Name="PSShare"'
PS C:\> $s
Name Path Description
---- ---- -----------
PSShare C:\PowerShell