Windows PowerShelles tulajdonságszolgáltató létrehozása

Ez a témakör azt ismerteti, hogyan hozhat létre olyan szolgáltatót, amely lehetővé teszi, hogy a felhasználó módosítsa egy adattár elemeinek tulajdonságait. Ennek következtében ezt a szolgáltatótípust tulajdonságszolgáltatónak Windows PowerShell nevezzük. Az adatbázis-szolgáltató által biztosított Windows PowerShell a beállításkulcs-értékeket a beállításkulcs-elem tulajdonságaiként kezeli. Az ilyen típusú szolgáltatónak hozzá kell adni a System.Management.Automation.Provider.Ipropertycmdletprovider felületet a .NET-osztály implementáljához.

Megjegyzés

Windows PowerShell egy sablonfájlt biztosít, amely egy új szolgáltató Windows PowerShell használhatja. A TemplateProvider.cs fájl a Microsoft Windows Vista és .NET-keretrendszer 3.0 Runtime Components Windows szoftverfejlesztői készletében érhető el. A letöltési utasításokért lásd: How to Install Windows PowerShell and Download the Windows PowerShell SDK. A letöltött sablon a könyvtárban <PowerShell Samples> érhető el. Másolatot kell létrehoznia erről a fájlról, és a másolatot kell használnia egy új Windows PowerShell létrehozásához, eltávolítva a felesleges funkciókat. További információ a szolgáltató egyéb Windows PowerShell implementációiról: Designing Your Windows PowerShell Provider(Saját szolgáltató tervezése).

Figyelemfelhívás

A tulajdonságszolgáltató metódusai bármilyen objektumot megírnak a System.Management.Automation.Provider.Cmdletprovider.Writepropertyobject* metódussal.

A Windows PowerShell meghatározása

A tulajdonságszolgáltatónak létre kell hoznia egy .NET-osztályt, amely támogatja a System.Management.Automation.Provider.Ipropertycmdletprovider felületet. Itt található a sablon által biztosított TemplateProvider.cs fájl alapértelmezett osztálydeklarációja Windows PowerShell.

Alapfunkciók meghatározása

A System.Management.Automation.Provider.Ipropertycmdletprovider felület bármely szolgáltatói alaposztályhoz csatolható a System.Management.Automation.Provider.Drivecmdletprovider osztály kivételével. Adja hozzá a használt alaposztályhoz szükséges alapfunkciót. További információ az alaposztályokkal kapcsolatban: Designing Your Windows PowerShell Provider.

Tulajdonságok beolvasása

A tulajdonságok lekéréséhez a szolgáltatónak implementálja a System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* metódust a parancsmag hívásának Get-ItemProperty támogatásához. Ez a metódus lekéri az elem tulajdonságait a megadott belső szolgáltatói elérési úton (teljesen minősített).

A providerSpecificPickList paraméter jelzi, hogy mely tulajdonságokat kell lekérni. Ha ez a paraméter vagy üres, a null metódusnak az összes tulajdonságot le kell tudniakérni. Emellett a System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* egy System.Management.Automation.PSObject objektum egy példányát írja, amely a lekért tulajdonságok tulajdonságos csomagját jelöli. A metódusnak semmit sem kell visszaadni.

Javasoljuk, hogy a System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* implementációja támogatja a tulajdonságnevek helyettesítő karakteres bővítését a lista minden eleméhez. Ehhez használja a System.Management.Automation.Wildcardpattern osztályt a helyettesítő karakterek mintaegyezésének végrehajtásához.

Itt található a System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* alapértelmezett implementációja a Windows PowerShell.

A GetProperty megvalósításával kapcsolatos dolgok

A következő feltételek vonatkozhatnak a System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* implementációra:

Dinamikus paraméterek csatolása a Get-ItemProperty parancsmaghoz

A Get-ItemProperty parancsmag további paramétereket is megkövetelhet, amelyek dinamikusan vannak megadva futásidőben. Ezen dinamikus paraméterek megvalósításához a Windows PowerShell-tulajdonságszolgáltatónak implementálja a System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters* metódust. A paraméter egy teljesen minősített belső szolgáltatói útvonalat jelez, a paraméter pedig a parancssorban megadott path providerSpecificPickList szolgáltatóspecifikus tulajdonságokat határozza meg. Ez a paraméter lehet vagy üres, ha a tulajdonságok null a parancsmaghoz vannak átadva. Ebben az esetben ez a metódus egy olyan objektumot ad vissza, amely olyan tulajdonságokkal és mezőkkel rendelkezik, amelyek a parancsmagosztályhoz vagy a System.Management.Automation.Runtimedefinedparameterdictionary objektumhoz hasonló elemzési attribútumokkal rendelkeznek. A Windows PowerShell a visszaadott objektummal adja hozzá a paramétereket a parancsmaghoz.

Itt található a System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters* alapértelmezett implementációja a Windows PowerShell.

Tulajdonságok beállítása

A tulajdonságok beállításához a Windows PowerShell-tulajdonságszolgáltatónak implementálja a System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* metódust a parancsmag hívásának Set-ItemProperty támogatásához. Ez a metódus beállítja az elem egy vagy több tulajdonságát a megadott elérési úton, és szükség szerint felülírja a megadott tulajdonságokat. A System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* egy System.Management.Automation.PSObject objektum egy példányát is kiírja, amely a frissített tulajdonságok tulajdonságkészletét jelöli.

Itt található a System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* alapértelmezett implementációja a Windows PowerShell.

A Set-ItemProperty

A következő feltételek a System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty*implementációira vonatkozhatnak:

Dinamikus paraméterek csatolása a Set-ItemProperty parancsmaghoz

A Set-ItemProperty parancsmag további paramétereket is megkövetelhet, amelyek dinamikusan vannak megadva futásidőben. Ezen dinamikus paraméterek megvalósításához a Windows PowerShell tulajdonságszolgáltatójának implementálja a System.Management.Automation.Provider.Ipropertycmdletprovider.Setpropertydynamicparameters* metódust. Ez a metódus olyan objektumot ad vissza, amely olyan tulajdonságokkal és mezőkkel rendelkezik, amelyek a parancsmagosztályhoz vagy a System.Management.Automation.Runtimedefinedparameterdictionary objektumhoz hasonló elemzési attribútumokkal rendelkeznek. Az érték visszaadható, ha nem kell dinamikus null paramétereket hozzáadni.

Itt található a System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters* alapértelmezett implementációja a Windows PowerShell.

Tulajdonságok törlése

A tulajdonságok ürítéséhez a Windows PowerShell-tulajdonságszolgáltatónak implementálja a System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* metódust a parancsmag hívásának Clear-ItemProperty támogatásához. Ez a metódus egy vagy több tulajdonságot állít be a megadott elérési úton található elemhez.

Itt található a System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* alapértelmezett implementációja a Windows PowerShell.

Fontos megjegyezni a ClearProperty megvalósításával kapcsolatban

Az alábbi feltételek vonatkozhatnak a System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* implementációra:

Dinamikus paraméterek csatolása a Clear-ItemProperty parancsmaghoz

A Clear-ItemProperty parancsmag további paramétereket is megkövetelhet, amelyek dinamikusan vannak megadva futásidőben. Ezen dinamikus paraméterek megvalósításához a Windows PowerShell tulajdonságszolgáltatónak implementálja a System.Management.Automation.Provider.Ipropertycmdletprovider.Clearpropertydynamicparameters* metódust. Ez a metódus olyan objektumot ad vissza, amely olyan tulajdonságokkal és mezőkkel rendelkezik, amelyek a parancsmagosztályhoz vagy a System.Management.Automation.Runtimedefinedparameterdictionary objektumhoz hasonló elemzési attribútumokkal rendelkeznek. Az érték visszaadható, ha nem kell dinamikus null paramétereket hozzáadni.

Itt található a System.Management.Automation.Provider.Ipropertycmdletprovider.Clearpropertydynamicparameters* alapértelmezett implementációja a Windows PowerShell.

A Windows PowerShell kiépítése

Lásd: Parancsmagok, szolgáltatók és gazdaalkalmazások regisztrálása.

Lásd még:

Windows PowerShell szolgáltató

Saját Windows PowerShell megtervezése

Objektumtípusok kiterjesztése és formázása

Parancsmagok, szolgáltatók és gazdaalkalmazások regisztrálása