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:
A szolgáltatói osztály meghatározásakor egy Windows PowerShell-tulajdonságszolgáltató deklarálhatja az ExpandWildcards, Filter, Include vagy Exclude szolgáltatói képességeket a System.Management.Automation.Provider.Providercapabilities enumerálásból. Ezekben az esetekben a System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* metódus implementációjának biztosítania kell, hogy a metódusnak átadott elérési út megfeleljen a megadott képességek követelményeinek. Ehhez a metódusnak hozzá kell férni a megfelelő tulajdonsághoz, például a System.Management.Automation.Provider.Cmdletprovider.Exclude* és a System.Management.Automation.Provider.Cmdletprovider.Include* tulajdonságokhoz.
Alapértelmezés szerint a metódus felülbírálásai nem olvasnak le olvasót a felhasználó elől rejtett objektumokhoz, kivéve, ha a System.Management.Automation.Provider.Cmdletprovider.Force* tulajdonság a következőre van beállítva:
true
. Hibaüzenetet kell írni, ha az elérési út egy, a felhasználó elől rejtett elemet jelent, és a System.Management.Automation.Provider.Cmdletprovider.Force* beállításafalse
.
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:
A szolgáltatói osztály meghatározásakor egy Windows PowerShell-tulajdonságszolgáltató deklarálhatja az ExpandWildcards, Filter, Include vagy Exclude szolgáltatói képességeket a System.Management.Automation.Provider.Providercapabilities enumerálásból. Ezekben az esetekben a System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* metódus implementációjának biztosítania kell, hogy a metódusnak átadott elérési út megfeleljen a megadott képességek követelményeinek. Ehhez a metódusnak hozzá kell férni a megfelelő tulajdonsághoz, például a System.Management.Automation.Provider.Cmdletprovider.Exclude* és a System.Management.Automation.Provider.Cmdletprovider.Include* tulajdonságokhoz.
Alapértelmezés szerint a metódus felülbírálásai nem olvasnak le olvasót a felhasználó elől rejtett objektumokhoz, kivéve, ha a System.Management.Automation.Provider.Cmdletprovider.Force* tulajdonság a következőre van beállítva:
true
. Hibaüzenetet kell írni, ha az elérési út egy, a felhasználó elől rejtett elemet jelent, és a System.Management.Automation.Provider.Cmdletprovider.Force* beállításafalse
.A System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* metódus implementációjának meg kell hívnia a System.Management.Automation.Provider.Cmdletprovider.ShouldProcess metódust, és ellenőriznie kell a visszatérési értékét, mielőtt bármilyen módosítást eszközít az adattáron. Ez a metódus a művelet végrehajtásának megerősítésére használható, ha a rendszerállapot megváltozik, például fájlokat kell átszedni. A System.Management.Automation.Provider.Cmdletprovider.ShouldProcess elküldi a módosítani szükséges erőforrás nevét a felhasználónak a Windows PowerShell-futásidejűvel, és kezeli a parancssori beállításokat vagy beállításváltozókat a megjelenítendő adatok meghatározásához.
Miután a System.Management.Automation.Provider.Cmdletprovider.ShouldProcess hívása visszaadja a értéket, ha potenciálisan veszélyes rendszermódosítások lehetségesek, a
true
System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* metódusnak a System.Management.Automation.Provider.Cmdletprovider.ShouldContinue metódust kell hívnia. Ez a metódus egy megerősítő üzenetet küld a felhasználónak, amely további visszajelzést küld, amely jelzi, hogy a műveletet folytatni kell.
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:
A szolgáltatói osztály meghatározásakor egy Windows PowerShell-tulajdonságszolgáltató deklarálhatja az ExpandWildcards, Filter, Include vagy Exclude szolgáltatói képességeket a System.Management.Automation.Provider.Providercapabilities enumerálásból. Ezekben az esetekben a System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* metódus implementációjának biztosítania kell, hogy a metódusnak átadott elérési út megfeleljen a megadott képességek követelményeinek. Ehhez a metódusnak hozzá kell férni a megfelelő tulajdonsághoz, például a System.Management.Automation.Provider.Cmdletprovider.Exclude* és a System.Management.Automation.Provider.Cmdletprovider.Include* tulajdonságokhoz.
Alapértelmezés szerint a metódus felülbírálásai nem olvasnak le olvasót a felhasználó elől rejtett objektumokhoz, kivéve, ha a System.Management.Automation.Provider.Cmdletprovider.Force* tulajdonság a következőre van beállítva:
true
. Hibaüzenetet kell írni, ha az elérési út egy, a felhasználó elől rejtett elemet jelent, és a System.Management.Automation.Provider.Cmdletprovider.Force* beállításafalse
.A System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* metódus implementációjának meg kell hívnia a System.Management.Automation.Provider.Cmdletprovider.ShouldProcess metódust, és ellenőriznie kell a visszatérési értékét, mielőtt bármilyen módosítást eszközít az adattáron. Ez a metódus a művelet végrehajtásának megerősítésére használható a rendszerállapot módosítása előtt, például a tartalom törlése előtt. A System.Management.Automation.Provider.Cmdletprovider.ShouldProcess elküldi a módosítani szükséges erőforrás nevét a felhasználónak, a Windows PowerShell-es futásidővel együtt, figyelembe véve a parancssori beállításokat és a preferenciaváltozókat a megjelenítendő adatok meghatározásához.
Miután a System.Management.Automation.Provider.Cmdletprovider.ShouldProcess hívása visszaadja a értéket, ha potenciálisan veszélyes rendszermódosítások lehetségesek, a
true
System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* metódusnak a System.Management.Automation.Provider.Cmdletprovider.ShouldContinue metódust kell hívnia. Ez a metódus egy megerősítő üzenetet küld a felhasználónak, amely további visszajelzést küld, amely jelzi, hogy a potenciálisan veszélyes műveletet folytatni kell.
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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: