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


Windows PowerShell szolgáltató tervezése

Érdemes Windows PowerShell szolgáltatót telepíteni, ha a terméked vagy konfigurációd tárolt adathalmazt fed fel, például egy adatbázist, amelyet a felhasználó szeretne navigálni vagy böngészni. Továbbá, ha a terméked konténert biztosít, még ha nem is többszintű konténer, akkor érdemes Windows PowerShell szolgáltatót bevezetni. Például érdemes lehet Windows PowerShell konténer szolgáltatót valósítani meg, ha a Copy, Move, Rename, New or Remove cmdlet igés értelmet ad a termékedben vagy konfigurációs adataidon működő műveletként.

A Windows PowerShell útvonalak azonosítják a szolgáltatót

A Windows PowerShell futás útvonalakat használ a megfelelő Windows PowerShell szolgáltatóhoz való hozzáféréshez. Amikor egy cmdlet megad valamelyik ilyen útvonalat, a futási idő tudja, melyik szolgáltatót kell használni a hozzá tartozó adattároló eléréséhez. Ezek az utak közé tartoznak a drive-qualified útvonalak, szolgáltató által minősített útvonalak, szolgáltató-közvetlen utak és szolgáltató-belső utak. Minden Windows PowerShell szolgáltatónak egy vagy több ilyen útvonalat kell támogatnia.

További információért a Windows PowerShell útvonalakról lásd: Hogyan működik Windows PowerShell.

Egy Drive-Qualified út meghatározása

Ahhoz, hogy a felhasználó hozzáférhessen a fizikai meghajtón található adatokhoz, a Windows PowerShell szolgáltatónak meghajtóhoz minősített útvonalat kell támogatnia. Ez az út a meghajtó nevével kezdődik, majd egy kollós (:), például mydrive:\abc\bar.

Egy Provider-Qualified út meghatározása

Ahhoz, hogy a Windows PowerShell futás ideje inicializálja és visszavonja a szolgáltatót, a Windows PowerShell szolgáltatónak támogatnia kell egy szolgáltató által minősített útvonalat. Például a FileSystem::\uncshare\abc\bar a Windows PowerShell által biztosított szolgáltató által biztosított szolgáltató által minősített út.

Egy Provider-Direct út meghatározása

Ahhoz, hogy távoli hozzáférést engedélyezzen a Windows PowerShell szolgáltatóhoz, támogatnia kell egy szolgáltató-közvetlen utat is, amely közvetlenül a Windows PowerShell szolgáltatóhoz jut a jelenlegi helyhez. Például a Windows PowerShell szolgáltató használhatja \\server\regkeypath útvonalat szolgáltató-közvetlen útvonalként.

Egy Provider-Internal út meghatározása

Ahhoz, hogy a szolgáltató cmdlet nem Windows PowerShell alkalmazási interfészeken (API-k) keresztül hozzáférhessen az adatokhoz, a Windows PowerShell szolgáltatónak támogatnia kell a szolgáltató belső útvonalát. Ez az útvonal a szolgáltató által minősített út "::" után van jelölve. Például a FileSystem Windows PowerShell szolgáltató szolgáltató-belső útja \\uncshare\abc\bar.

Tárolt adatok megváltoztatása

Amikor felülírod azokat a metóduszokat, amelyek módosítják az alap adattárolót, mindig hívjuk a System.Management.Automation.Provider.CmdletProvider.WriteItemObject* metódupontot, amelyen az adott módszer által módosított legup-toverziót módosítja. A szolgáltató infrastruktúra határozza meg, hogy az item objektumot át kell adni a csővezetéknek, például amikor a felhasználó megadja a -PassThru paramétert. Ha a legup-todátummal rendelkező elem lekérése költséges (teljesítmény szempontjából), akkor tesztelheted a Context.PassThru tulajdonságot, hogy megállapítsd, valóban szükséges-e a kikapott tételt írni.

Válassz egy alaposztályt a szolgáltatód számára

A Windows PowerShell számos alap osztályt biztosít, amelyeket saját Windows PowerShell szolgáltató megvalósításához használhatsz. Szolgáltató tervezésekor válaszd ki az ebben a szakaszban leírt alaposztályt, amely a leginkább megfelel az igényeidnek.

Minden Windows PowerShell szolgáltató alaposztálya egy cmdlet-készletet kínál. Ez a rész a cmdleteket írja le, de nem írja le a paramétereiket.

A session állapot használatával a Windows PowerShell futási ideje több helyalapú cmdletet tesz elérhetővé bizonyos Windows PowerShell szolgáltatók számára, például a Get-Location, Set-Location, Pop-Location, és Push-Location cmdlet-ek számára. A Get-Help cmdlet-et használhatod, hogy információkat szerezz ezekről a helyparancsnokokról.

CmdletProvider Base Class

A System.Management.Automation.Provider.CmdletProvider osztály egy alapvető Windows PowerShell szolgáltatót határoz meg. Ez az osztály támogatja a szolgáltató deklarációját, és számos tulajdonságot és metódust biztosít, amelyek minden Windows PowerShell szolgáltató számára elérhetők. Az osztályt a Get-PSProvider cmdlet hívja fel, hogy felsorolja az összes elérhető szolgáltatót egy ülésre. Ennek a cmdletnek a megvalósítását a session állapot biztosítja.

Megjegyzés:

A Windows PowerShell szolgáltatók minden Windows PowerShell nyelvi körhöz elérhetők.

DriveCmdletProvider Base Class

A System.Management.Automation.Provider.DriveCmdletProvider osztály egy Windows PowerShell meghajtó szolgáltatót határoz meg, amely támogatja az új meghajtók hozzáadását, meglévő meghajtók eltávolítását és az alapértelmezett meghajtók inicializálását. Például a Windows PowerShell által biztosított FileSystem szolgáltató inicializálja a meghajtókat minden csatlakoztatott kötethez, például merevlemezekhez és CD/DVD eszközmeghajtókhoz.

Ez az osztály a System.Management.Automation.Provider.CmdletProvider alaposztályból származik. Az alábbi táblázat felsorolja az osztály által kitett cmdlet-eket. A felsoroltak mellett a Get-PSDrive cmdlet (session állapot szerint exponálva) egy kapcsolódó cmdlet, amelyet elérhető meghajtók visszakeresésére használnak.

Cmdlet Definition
New-PSDrive Új meghajtót hoz létre a játékhoz, és streamelte a meghajtó adatait.
Remove-PSDrive Eltávolít egy meghajtót a játékból.

ItemCmdletProvider Base Class

A System.Management.Automation.Provider.ItemCmdletProvider osztály egy Windows PowerShell elemszolgáltatót definiál, amely az adattároló egyes elemein végez műveleteket, és nem feltételez semmilyen tároló- vagy navigációs képességeket. Ez az osztály a System.Management.Automation.Provider.DriveCmdletProvider alaposztályból származik. Az alábbi táblázat felsorolja az osztály által kitett cmdlet-eket.

Cmdlet Definition
Clear-Item Töröli a megadott helyen lévő aktuális tartalmat, és a szolgáltató által megadott "clear" értéket helyettesíti. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .
Get-Item Elemeket kér a megadott helyről, és továbbítja az eredményt kapott objektumokat.
Invoke-Item A megadott útvonalon indítja meg az alapértelmezett műveletet az adott tárgyhoz.
Set-Item A megadott helyen egy tételt állít be a megadott értékkel. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .
Resolve-Path Megoldja a Windows PowerShell útvonal wildcardjait, és az út adatait továbbítja.
Test-Path Teszteli a megadott útvonalat, és visszatér true , ha létezik vagy false egyébként. Ez a cmdlet a System.Management.Automation.Provider.CmdletProvider.WriteItemObject* metódus paraméterének támogatására IsContainer van valósítva.

ContainerCmdletProvider Base Class

A System.Management.Automation.Provider.ContainerCmdletProvider osztály egy Windows PowerShell konténer szolgáltatót definiál, amely egy konténert tár fel a felhasználó számára. Ne feledd, hogy Windows PowerShell konténer szolgáltató csak akkor használható, ha van egy konténer (nincs beágyazott konténer), amelyben elemek vannak. Ha vannak beágyazott konténerek, akkor Windows PowerShell navigációs szolgáltatót kell implementálnod.

Ez az osztály a System.Management.Automation.Provider.ItemCmdletProvider alaposztályból származik. Az alábbi táblázat határozza meg az osztály által implementált cmdleteket.

Cmdlet Definition
Copy-Item Másolja az elemeket egyik helyről a másikra. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .
Get-ChildItem A megadott helyen lekéri a gyermek elemeket, és objektumként streamelte őket.
New-Item Új elemeket hoz létre a megadott helyen, és streameli az eredményt kapott objektumot.
Remove-Item Eltávolítja az elemeket a megadott helyről.
Rename-Item Átnevez egy tárgyat a megadott helyen. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .

A System.Management.Automation.Provider.NavigationCmdletProvider osztály egy Windows PowerShell navigációs szolgáltatót definiál, amely műveleteket végez olyan elemek számára, amelyek több konténert használnak. Ez az osztály a System.Management.Automation.Provider.ContainerCmdletProvider alaposztályból származik. Az alábbi táblázat felsorolja az osztály által kitett cmdleteket.

Cmdlet Definition
Combine-Path Két útvonalat egyesít egyetlen útvonalba, szolgáltató-specifikus elválasztót használva az utak között. Ez a parancsnok a stringeket streamel.
Move-Item Elemeket a megadott helyre mozgat. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .

Egy kapcsolódó cmdlet az alap Parse-Path cmdlet, amelyet a Windows PowerShell biztosít. Ez a cmdlet használható Windows PowerShell útvonal elemzésére a paraméter támogatására Parent . A szülő útsort streameli.

Válassza ki a szolgáltatói interfészeket a támogatásra

A Windows PowerShell szolgáltatója azon túl, hogy valamelyik Windows PowerShell alaposztályból származik, más funkciókat is támogathat, ha az alábbi szolgáltatói interfészek egyikéből vagy többből származik. Ez a szakasz határozza meg ezeket az interfészeket és az általuk támogatott cmdleteket. Nem írja le a felület által támogatott cmdlet-ek paramétereit. A cmdlet paraméterinformációk online elérhetők az Get-Command és Get-Help cmdlets segítségével.

IContentCmdletProvider

A System.Management.Automation.Provider.IContentCmdletProvider interfész egy olyan tartalomszolgáltatót határoz meg, amely egy adattárgy tartalmán műveleteket végez. Az alábbi táblázat felsorolja az interfész által kitett cmdleteket.

Cmdlet Definition
Add-Content A megadott értékhosszokat hozzáfűzi a megadott tétel tartalmához. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .
Clear-Content A megadott tétel tartalmát "clear" értékre állítja be. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .
Get-Content Lekéri a megadott elemek tartalmát, és az eredményt kapott objektumokat streamelti.
Set-Content Lecseréli a megadott tételekhez tartozó meglévő tartalmat. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .

IPropertyCmdletProvider

A System.Management.Automation.Provider.IPropertyCmdletProvider interfész egy Windows PowerShell szolgáltató tulajdonságát határozza meg, amely műveleteket végez az adattároló elemeinek tulajdonságain. Az alábbi táblázat felsorolja az interfész által kitett cmdleteket.

Megjegyzés:

Ezeknek a cmdleteknek a Path paramétere egy elemhez vezető útvonalat jelöl, nem pedig egy tulajdonságot azonosítana.

Cmdlet Definition
Clear-ItemProperty A megadott elemek tulajdonságait "clear" értékre állítja be. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .
Get-ItemProperty A megadott elemekről származó tulajdonságokat kér le, és az ebből származó objektumokat továbbítja.
Set-ItemProperty A megadott elemek tulajdonságait a megadott értékekkel állítja be. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .

IDynamicPropertyCmdletProvider

A System.Management.Automation.Provider.IDynamicPropertyCmdletProvider interfész, amely a System.Management.Automation.Provider.IPropertyCmdletProvider mintából származik, egy olyan szolgáltatót határoz meg, amely dinamikus paramétereket határoz meg a támogatott cmdletjeihez. Ez a szolgáltatótípus olyan műveleteket kezel, amelyekhez a tulajdonságok futásidőben definiálhatók, például egy új tulajdonság műveletet. Ilyen műveletek nem lehetségesek statikusan definiált tulajdonságokkal rendelkező elemeknél. Az alábbi táblázat felsorolja az interfész által kitett cmdleteket.

Cmdlet Definition
Copy-ItemProperty Másolja a megadott tárgyból egy tulajdonságot egy másik tárgyba. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .
Move-ItemProperty Egy tulajdonságot áthelyez a megadott tárgyról egy másik tárgyba. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .
New-ItemProperty Létrehoz egy tulajdonságot a megadott elemeken, és az eredményt kapott objektumokat streamelti.
Remove-ItemProperty Eltávolít egy tulajdonságot a megadott elemekhez.
Rename-ItemProperty Átnevezi a megadott elemek egy tulajdonságát. Ez a cmdlet nem továbbít kimeneti objektumot a csővezetéken, hacsak nem van megadva a paramétere PassThru .

ISecurityDescriptorCmdletProvider

A System.Management.Automation.Provider.ISecurityDescriptorCmdletProvider interfész biztonsági leírás funkciókat ad hozzá a szolgáltatóhoz. Ez az interfész lehetővé teszi a felhasználó számára, hogy hozzáférjen és beállítson biztonsági leírási információkat egy adattároló tárgyhoz. Az alábbi táblázat felsorolja az interfész által kitett cmdleteket.

Cmdlet Definition
Get-Acl Lekéri a hozzáférés-szabályozó listában (ACL) található információkat, amely egy biztonsági leíró része, amely operációs rendszer erőforrásait, például egy fájlt vagy objektumot őriz.
Set-Acl Beállítása az ACL információihoz. Ez a System.Security.AccessControl.ObjectSecurity példánya a megadott útvonalhoz kijelölt elem(ek)en jelenik meg. Ez a cmdlet képes adatokat beállítani a nyilvántartásban vagy bármely más szolgáltatói elemben lévő fájlokról, kulcsokról és alkulcsokról, ha a Windows PowerShell szolgáltató támogatja a biztonsági információk beállítását.

Lásd még:

Windows PowerShell szolgáltatók létrehozása

Hogyan működik a Windows PowerShell

Windows PowerShell SDK