Új WMI példányok és meglevők tulajdonságainak módosítására a Set-WMIInstance cmdletet használhatjuk. Ahhoz, hogy ezt megfelelően használhassuk, meg kell tudnunk a keresett WMI objektum példány elérési útját. Ezt azért fontos, mert egy WMI osztálynak több példánya is lehet, így nem mindegy, hogy melyiknek módosítjuk a tulajdonságait. Elsőként tehát keressük meg az objektumot, jelen esetben példaként a Restore Point (helyreállítási pontok) konfigurációját tartalmazó WMI objektumot:
PS C:\> Get-WmiObject -Namespace ROOT\DEFAULT -Class systemrestoreconfig
__GENUS : 2
__CLASS : SystemRestoreConfig
__SUPERCLASS :
__DYNASTY : SystemRestoreConfig
__RELPATH : SystemRestoreConfig.MyKey="SR"
__PROPERTY_COUNT : 5
__DERIVATION : {}
__SERVER : TIBI-PC
__NAMESPACE : ROOT\DEFAULT
__PATH : \\TIBI-PC\ROOT\DEFAULT:SystemRestoreConfig.MyKey="SR"
DiskPercent : 15
MyKey : SR
RPGlobalInterval :
RPLifeInterval :
RPSessionInterval : 1
Ez azért kell nekem, hogy beállíthassam, hogy a helyreállítási pontokat mennyi ideig őrizze a rendszer. Ezt az RPLifeInterval tulajdonság módosításával tehetem be, itt másodpercekben kell megadni az időt. A Set-WMIInstace cmdletnek a –Path paraméterének az előbb látott keresés __PATH adatát kell átadni, ezzel teljesen egyértelmű, hogy melyik objektumot is akarjuk módosítani:
PS C:\> Set-WmiInstance -Path '\\TIBI-PC\ROOT\DEFAULT:SystemRestoreConfig.MyKey
="SR"' -arguments @{RPLifeInterval = 864000}
__GENUS : 2
__CLASS : SystemRestoreConfig
__SUPERCLASS :
__DYNASTY : SystemRestoreConfig
__RELPATH : SystemRestoreConfig.MyKey="SR"
__PROPERTY_COUNT : 5
__DERIVATION : {}
__SERVER : TIBI-PC
__NAMESPACE : ROOT\DEFAULT
__PATH : \\TIBI-PC\ROOT\DEFAULT:SystemRestoreConfig.MyKey="SR"
DiskPercent : 15
MyKey : SR
RPGlobalInterval :
RPLifeInterval : 864000
RPSessionInterval : 1
Az arguments paraméternek egy olyan hashtáblát kell átadni, amelyben a tulajdonságnév – érték párok vannak.
Nézzük meg, hogy mi történt volna, ha csak az osztályt határozzuk meg a Set-WMIInstance számára:
PS C:\> set-Wmiinstance -Namespace ROOT\DEFAULT -Class systemrestoreconfig -Arg
uments @{RPLifeInterval = 864000}
__GENUS : 2
__CLASS : SystemRestoreConfig
__SUPERCLASS :
__DYNASTY : SystemRestoreConfig
__RELPATH : SystemRestoreConfig.MyKey="{0F45EB5A-31C3-4161-BB1A-3CCFC2
50DC20}"
__PROPERTY_COUNT : 5
__DERIVATION : {}
__SERVER : TIBI-PC
__NAMESPACE : ROOT\DEFAULT
__PATH : \\TIBI-PC\ROOT\DEFAULT:SystemRestoreConfig.MyKey="{0F45EB5
A-31C3-4161-BB1A-3CCFC250DC20}"
DiskPercent :
MyKey : {0F45EB5A-31C3-4161-BB1A-3CCFC250DC20}
RPGlobalInterval :
RPLifeInterval : 864000
RPSessionInterval :
Látszólag minden úgy történt majdnem, mint eddig, de ha újra kilistázom a SystemRestoreConfig osztály elemeit, akkor láthatjuk, hogy most nem a meglevő elemet módosítottunk, hanem egy új objektumot hoztunk létre:
PS C:\> Get-WmiObject -Namespace ROOT\DEFAULT -Class systemrestoreconfig
__GENUS : 2
__CLASS : SystemRestoreConfig
__SUPERCLASS :
__DYNASTY : SystemRestoreConfig
__RELPATH : SystemRestoreConfig.MyKey="{0F45EB5A-31C3-4161-BB1A-3CCFC2
50DC20}"
__PROPERTY_COUNT : 5
__DERIVATION : {}
__SERVER : TIBI-PC
__NAMESPACE : ROOT\DEFAULT
__PATH : \\TIBI-PC\ROOT\DEFAULT:SystemRestoreConfig.MyKey="{0F45EB5
A-31C3-4161-BB1A-3CCFC250DC20}"
DiskPercent :
MyKey : {0F45EB5A-31C3-4161-BB1A-3CCFC250DC20}
RPGlobalInterval :
RPLifeInterval : 864000
RPSessionInterval :
__GENUS : 2
__CLASS : SystemRestoreConfig
__SUPERCLASS :
__DYNASTY : SystemRestoreConfig
__RELPATH : SystemRestoreConfig.MyKey="SR"
__PROPERTY_COUNT : 5
__DERIVATION : {}
__SERVER : TIBI-PC
__NAMESPACE : ROOT\DEFAULT
__PATH : \\TIBI-PC\ROOT\DEFAULT:SystemRestoreConfig.MyKey="SR"
DiskPercent : 15
MyKey : SR
RPGlobalInterval :
RPLifeInterval : 864000
RPSessionInterval : 1
A nem szükséges példányt a Remove-WMIObject cmdlettel tudjuk eltávolítani, itt is a pontos elérési utat kell megadni az objektum pontos azonosítása érdekében:
PS C:\> Remove-WmiObject -Path '\\TIBI-PC\ROOT\DEFAULT:SystemRestoreConfig.MyKe
y="{0F45EB5A-31C3-4161-BB1A-3CCFC250DC20}"'