Megosztás a következőn keresztül:


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

Ez a téma leírja, hogyan hozhat létre olyan szolgáltatót, amely lehetővé teszi a felhasználó számára, hogy manipulálja az adattároló elemei tulajdonságait. Ennek következtében ezt a szolgáltatótípust Windows PowerShell tulajdonságszolgáltatónak nevezik. Például a Windows PowerShell által biztosított Registry szolgáltató a regiszterkulcs értékeit a regiszterkulcs elem tulajdonságaiként kezeli. Ennek a szolgáltatónak a System.Management.Automation.Provider.IPropertyCmdletProvider interfészt kell hozzáadnia a .NET osztály megvalósításához.

Megjegyzés:

A Windows PowerShell egy sablonfájlt biztosít, amellyel Windows PowerShell szolgáltatót fejleszthetsz. A TemplateProvider.cs fájl elérhető a Microsoft Windows Software Development Kit for Windows Vista és .NET Framework 3.0 Runtime Components kiadásában. A letöltési utasításokért lásd: Hogyan telepítsük a Windows PowerShell és a Windows PowerShell SDK letöltése. A letöltött sablon elérhető a <PowerShell Samples> könyvtárban. Készíts egy másolatot erről a fájlról, és használd fel azt a másolatot egy új Windows PowerShell szolgáltató létrehozásához, eltávolítva azokat a funkciókat, amikre nincs szükséged. További információért más Windows PowerShell szolgáltató megvalósításokról lásd: Designing Your Windows PowerShell Provider.

Caution

A tulajdonságszolgáltató medukációinak a System.Management.Automation.Provider.CmdletProvider.Writepropertyobject* metódumust kell írniuk.

A Windows PowerShell szolgáltató meghatározása

Egy tulajdonságszolgáltatónak olyan .NET osztályt kell létrehoznia, amely támogatja a System.Management.Automation.Provider.IPropertyCmdletProvider interfészt. Itt van az alapértelmezett osztálydeklaráció a Windows PowerShell által biztosított TemplateProvider.cs fájlból.

Az alapfunkcionalitás meghatározása

A System.Management.Automation.Provider.IPropertyCmdletProvider interfész bármely szolgáltató alaposztályhoz csatolható, kivéve a System.Management.Automation.Provider.DriveCmdletProvider osztályt. Add hozzá az alap funkcionalit, amit az alap osztály igényel. Az alap osztályokról további információért lásd: Designing Your Windows PowerShell Provider.

Tulajdonságok visszanyerése

A tulajdonságok visszakereséséhez a szolgáltatónak a System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* metódunut kell megvalósítania, hogy támogassa a parancsnokból érkező hívásokat Get-ItemProperty . Ez a módszer visszanyeri az adott szolgáltató-belső úton található tétel tulajdonságait (teljesen minősített).

A providerSpecificPickList paraméter jelzi, mely tulajdonságokat kell visszaszerezni. Ha ez a paraméter üres null vagy üres, a metódusnak minden tulajdonságot vissza kell kérnie. Ezen felül a System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* egy System.Management.Automation.PSObject objektum példányát írja, amely a lekért tulajdonságok egy tulajdonságzsákját képviseli. A módszernek semmit sem kell visszaadnia.

Ajánlott, hogy a System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* megvalósítása támogassa a választási lista minden elemének wildcard bővítését. Ehhez a System.Management.Automation.WildcardPattern osztályt használjuk a vadkártya mintázatpárosításhoz.

Íme a System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* alapértelmezett megvalósítása a Windows PowerShell által biztosított TemplateProvider.cs fájlból.

Fontos dolgok, amiket érdemes megjegyezni a GetProperty bevezetésével kapcsolatban

A következő feltételek alkalmazhatók a System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* megvalósítására:

Dinamikus paraméterek hozzácsatolása a Get-ItemProperty cmdlethez

A Get-ItemProperty cmdlet további paramétereket igényelhet, amelyeket dinamikusan meghatározott futás közben. A dinamikus paraméterek biztosításához a Windows PowerShell tulajdonságszolgáltatónak meg kell valósítania a System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* metódust. A path paraméter egy teljesen minősített szolgáltató-belső útvonalat jelöl, míg a providerSpecificPickList paraméter a parancssoron megadott szolgáltató-specifikus tulajdonságokat jelöli. Ez a paraméter lehet null vagy üres, ha a tulajdonságokat a cmdlethez továbbítják. Ebben az esetben ez a módszer olyan objektumot ad vissza, amelynek tulajdonságai és mezői olyan elemző attribútumokkal rendelkeznek, amelyek hasonlóak egy cmdlet osztályhoz vagy a System.Management.Automation.RuntimeDefinedParameterDictionary objektumhoz. A Windows PowerShell futási ideje a visszaküldött objektumot használja a paraméterek hozzáadására a cmdlethez.

Íme a System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* alapértelmezett implementációja a Windows PowerShell által biztosított TemplateProvider.cs fájlból.

Tulajdonságok beállítása

A tulajdonságok beállításához a Windows PowerShell tulajdonságszolgáltatónak a System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* módszert kell alkalmaznia, hogy támogassa a parancsnoka hívásait Set-ItemProperty . Ez a módszer egy vagy több tulajdonságot állít be az adott útvonalon, é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 példányát is írja, amely a frissített tulajdonságok tulajdonság zsákját képviseli.

Itt található a System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* alapértelmezett implementációja a Windows PowerShell által biztosított TemplateProvider.cs fájlból.

Fontos dolgok, amiket érdemes megjegyezni a Set-ItemProperty bevezetéséről

A következő feltételek alkalmazhatók a System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* implementációjára:

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

A Set-ItemProperty cmdlet további paramétereket igényelhet, amelyeket dinamikusan meghatározott futás közben. Ezeknek a dinamikus paramétereknek a biztosításához a Windows PowerShell tulajdonságszolgáltatónak meg kell valósítania a System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters* metódust. Ez a módszer olyan objektumot ad vissza, amelynek tulajdonságai és mezői olyan elemző attribútumokkal rendelkeznek, amelyek hasonlóak egy cmdlet osztályhoz vagy a System.Management.Automation.RuntimedParameterDictionary objektumhoz. Az null érték akkor is visszaadható, ha nem adunk hozzá dinamikus paramétereket.

Íme a System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* alapértelmezett implementációja a Windows PowerShell által biztosított TemplateProvider.cs fájlból.

Tisztító ingatlanok

A tulajdonságok törléséhez a Windows PowerShell tulajdonságszolgáltatónak a System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* módszert kell végrehajtania, hogy támogassa a parancsnok hívásait Clear-ItemProperty . Ez a módszer egy vagy több tulajdonságot állít be a megadott úton található elemre.

Itt található a System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* alapértelmezett implementációja a Windows PowerShell által biztosított TemplateProvider.cs fájlból.

Amit érdemes megjegyezni a ClearProperty bevezetésével kapcsolatban

A következő feltételek érvényesek lehetnek a System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* implementációjára:

Dinamikus paraméterek hozzácsatolása a Clear-ItemProperty cmdlethez

A Clear-ItemProperty cmdlet további paramétereket igényelhet, amelyeket dinamikusan meghatározott futás közben. Ezeknek a dinamikus paramétereknek a biztosításához a Windows PowerShell tulajdonságszolgáltatónak meg kell valósítania a System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* metóduszt. Ez a módszer olyan objektumot ad vissza, amelynek tulajdonságai és mezői olyan elemző attribútumokkal rendelkeznek, amelyek hasonlóak egy cmdlet osztályhoz vagy a System.Management.Automation.RuntimedParameterDictionary objektumhoz. Az null érték akkor is visszaadható, ha nem adunk hozzá dinamikus paramétereket.

Íme a System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* alapértelmezett megvalósítása a Windows PowerShell által biztosított TemplateProvider.cs fájlból.

A Windows PowerShell szolgáltató felépítése

Lásd : Hogyan regisztráljuk a cmdleteket, szolgáltatókat és hásztealkalmazásokat.

Lásd még:

Windows PowerShell szolgáltató

Tervezd meg a Windows PowerShell szolgáltatódat

Objektumtípusok és formázás bővítése

Hogyan regisztráljuk a cmdleteket, szolgáltatókat és hoszt alkalmazásokat