Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
A szolgáltató osztály meghatározásakor egy Windows PowerShell tulajdonságszolgáltató bejelentheti az ExpandWildcards, Filter, Include, or Exclude szolgáltató képességeket a System.Management.Automation.Provider.ProviderCapabilities felsorolásából. Ezekben az esetekben a System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* módszer megvalósításának biztosítania kell, hogy a metódushoz átadott út megfeleljen a megadott képességek követelményeinek. Ehhez a metódusnak hozzá kell férnie a megfelelő tulajdonsághoz, például a System.Management.Automation.Provider.CmdletProvider.Exclude* és System.Management.Automation.Provider.CmdletProvider.Include* tulajdonságokhoz.
Alapértelmezés szerint ennek a metódusnak a felülbírálására nem kell visszaszerezniük olvasót olyan objektumokról, amelyek el vannak rejtve a felhasználó elől, hacsak a System.Management.Automation.Provider.CmdletProvider.Force* tulajdonság nincs beállítva.
trueHibát kell írni, ha az út egy olyan elemet képvisel, amely el van rejtve a felhasználó elől, és a System.Management.Automation.Provider.CmdletProvider.Force* beállítása .false
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:
A szolgáltató osztály meghatározásakor egy Windows PowerShell tulajdonságszolgáltató bejelentheti az ExpandWildcards, Filter, Include, or Exclude szolgáltató képességeket a System.Management.Automation.Provider.ProviderCapabilities felsorolásából. Ezekben az esetekben a System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* módszer megvalósításának biztosítania kell, hogy a metódushoz átadott út megfeleljen a megadott képességek követelményeinek. Ehhez a metódusnak hozzá kell férnie a megfelelő tulajdonsághoz, például a System.Management.Automation.Provider.CmdletProvider.Exclude* és System.Management.Automation.Provider.CmdletProvider.Include* tulajdonságokhoz.
Alapértelmezés szerint ennek a metódusnak a felülbírálására nem kell visszaszerezniük olvasót olyan objektumokról, amelyek el vannak rejtve a felhasználó elől, hacsak a System.Management.Automation.Provider.CmdletProvider.Force* tulajdonság nincs beállítva.
trueHibát kell írni, ha az út egy olyan elemet képvisel, amely el van rejtve a felhasználó elől, és a System.Management.Automation.Provider.CmdletProvider.Force* beállítása .falseA System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* módszer implementációjának hívnia kell a System.Management.Automation.Provider.CmdletProvider.ShouldProcess-t, és ellenőriznie kell annak visszaküldési értékét, mielőtt bármilyen változtatást végezne az adattárolóban. Ezt a módszert arra használják, hogy megerősítsék egy művelet végrehajtását, amikor a rendszerállapot változást hajt végre, például fájlok átnevezésekor. System.Management.Automation.Provider.CmdletProvider.ShouldProcess a módosítandó erőforrás nevét küldi a felhasználónak, a Windows PowerShell futásidőben, és kezeli a parancssori beállításokat vagy preferencia változókat, hogy meghatározza, mit kell megjeleníteni.
Miután a System.Management.Automation.Provider.CmdletProvider.ShouldProcess hívás visszatér
true, ha potenciálisan veszélyes rendszermódosításokat lehet végrehajtani, a System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* metódusnak hívnia kell a System.Management.Automation.Provider.CmdletProvider.ShouldContinue metódust. Ez a módszer megerősítő üzenetet küld a felhasználónak, hogy további visszajelzést adjon a művelet folytatásá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:
A szolgáltató osztály meghatározásakor egy Windows PowerShell tulajdonságszolgáltató bejelentheti az ExpandWildcards, Filter, Include, or Exclude szolgáltató képességeket a System.Management.Automation.Provider.ProviderCapabilities felsorolásából. Ezekben az esetekben a System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* módszer megvalósításának biztosítania kell, hogy a metódushoz átjutott út megfeleljen a megadott képességek követelményeinek. Ehhez a metódusnak hozzá kell férnie a megfelelő tulajdonsághoz, például a System.Management.Automation.Provider.CmdletProvider.Exclude* és System.Management.Automation.Provider.CmdletProvider.Include* tulajdonságokhoz.
Alapértelmezés szerint ennek a metódusnak a felülbírálására nem kell visszaszerezniük olvasót olyan objektumokról, amelyek el vannak rejtve a felhasználó elől, hacsak a System.Management.Automation.Provider.CmdletProvider.Force* tulajdonság nincs beállítva.
trueHibát kell írni, ha az út egy olyan elemet képvisel, amely el van rejtve a felhasználó elől, és a System.Management.Automation.Provider.CmdletProvider.Force* beállítása .falseA System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* módszer implementációjának hívnia kell a System.Management.Automation.Provider.CmdletProvider.ShouldProcess-t, és ellenőriznie kell annak visszatérési értékét, mielőtt bármilyen változtatást végezne az adattárolóban. Ezt a módszert arra használják, hogy megerősítsék a művelet végrehajtását, mielőtt a rendszerállapot módosítása történik, például tartalom törlése esetén. A System.Management.Automation.Provider.CmdletProvider.ShouldProcess elküldi a megváltoztatandó erőforrás nevét a felhasználónak, a Windows PowerShell futásideje pedig figyelembe veszi a parancssori beállításokat vagy preferenciaváltozókat, amikor meghatározza, mit kell megjeleníteni.
Miután a System.Management.Automation.Provider.CmdletProvider.ShouldProcess hívás visszatér
true, ha potenciálisan veszélyes rendszermódosításokat lehet végezni, a System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* metódusnak hívnia kell a System.Management.Automation.Provider.CmdletProvider.ShouldContinue metódust. Ez a módszer megerősítő üzenetet küld a felhasználónak, hogy további visszajelzést adjon arra, hogy a potenciálisan veszélyes műveletet folytatni kell.
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