A Windows PowerShell-szolgáltató tervezése

Akkor érdemes implementálni Windows PowerShell szolgáltatót, ha a terméke vagy konfigurációja tárolt adatok egy halmazát teszi elérhetővé, például egy adatbázist, amely között a felhasználó el szeretne navigálni vagy böngészni. Emellett, ha a termék egy tárolót is biztosít, még akkor is, ha nem többszintű tárolóról van szó, logikus egy Windows PowerShell megvalósítása. Előfordulhat például, hogy egy Windows PowerShell-tárolószolgáltatót szeretne megvalósítani, ha a Másolás, Áthelyezés, Átnevezés, Új vagy Eltávolítás parancsmag műveletnek van értelme a terméken vagy a konfigurációs adatokon.

Windows PowerShell A szolgáltató azonosításának útvonalai

A Windows PowerShell-Windows PowerShell elérési utakat használ a megfelelő Windows PowerShell eléréséhez. Ha egy parancsmag megadja ezen elérési utak valamelyikét, a futásidő tudni fogja, hogy melyik szolgáltatót kell használnia a társított adattár eléréséhez. Az elérési utak közé tartoznak a meghajtóval minősített elérési utak, a szolgáltató által minősített elérési utak, a szolgáltató által közvetlen útvonalak és a szolgáltató belső elérési útjai. Minden Windows PowerShell szolgáltatónak támogatnia kell egy vagy több ilyen útvonalat.

További információ az elérési utakról Windows PowerShell How Windows PowerShell Works (A Windows PowerShell működése).

Elérési út Drive-Qualified definiálása

Annak érdekében, hogy a felhasználó hozzáférjen a fizikai meghajtón található adatokhoz, a Windows PowerShell szolgáltatónak támogatnia kell a meghajtóval minősített elérési utat. Ez az elérési út a meghajtó nevével kezdődik, majd egy kettősponttal (:), például: mydrive:\abc\bar.

Elérési út Provider-Qualified definiálása

Ahhoz, hogy a Windows PowerShell inicializálja és inicializálja a szolgáltatót, a Windows PowerShell szolgáltatónak támogatnia kell a szolgáltató által minősített elérési utat. A FileSystem:: \uncshare\abc\bar például a fájlrendszer-szolgáltató szolgáltató által minősített elérési útja a \ Windows PowerShell.

Elérési út Provider-Direct definiálása

Ha engedélyeznie kell a Windows PowerShell-szolgáltatóhoz való távoli hozzáférést, akkor támogatnia kell a szolgáltató által közvetlenül a Windows PowerShell szolgáltatónak az aktuális helyhez való közvetlen elérést. A beállításjegyzék-szolgáltató például Windows PowerShell \ \server\regkeypath elérési utat használhatja szolgáltató által közvetlen elérési útként.

Elérési út Provider-Internal definiálása

Annak érdekében, hogy a szolgáltatói parancsmag nem Windows PowerShell alkalmazásprogramozási felületek (API-k) használatával hozzáférjen az adatokhoz, a Windows PowerShell-szolgáltatónak támogatnia kell a szolgáltató belső elérési útját. Ez az elérési út a "::" jel után látható a szolgáltató által minősített elérési úton. A fájlrendszer-szolgáltató belső elérési útja például a \ Windows PowerShell\uncshare\abc\bar.

Tárolt adatok módosítása

A mögöttes adattárat módosító metódusok felülbírálásakor mindig hívja meg a System.Management.Automation.Provider.Cmdletprovider.Writeitemobject* metódust, amelynél az elem legújabb verziója módosult az adott metódussal. A szolgáltatói infrastruktúra határozza meg, hogy az elemobjektumot át kell-e adni a folyamatnak, például amikor a felhasználó megadja a -PassThru paramétert. Ha a legfrissebb elem leolvasása költséges művelet (teljesítmény alapján), tesztelheti a Context.PassThru tulajdonságot annak megállapításához, hogy valóban meg kell-e írnia az eredményül kapott elemet.

Alaposztály kiválasztása a szolgáltatóhoz

Windows PowerShell több alaposztályt is biztosít, amelyek segítségével megvalósíthatja saját Windows PowerShell szolgáltatóját. Szolgáltató tervezésekor válassza ki az ebben a szakaszban ismertetett, az Igényeinek leginkább megfelelő alaposztályt.

Minden Windows PowerShell-szolgáltató alaposztálya elérhetővé tesz parancsmagok egy készletét. Ez a szakasz a parancsmagokat ismerteti, a paramétereiket azonban nem.

A munkamenet-állapot használatával a Windows PowerShell futtatás több hely parancsmagot tesz elérhetővé bizonyos Windows PowerShell-szolgáltatók, például a , a , a és a Get-Location Set-Location Pop-Location Push-Location parancsmagok számára. A parancsmag használatával információkat szerezhet be ezekről a hely Get-Help parancsmagokkal kapcsolatban.

CmdletProvider alaposztály

A System.Management.Automation.Provider.Cmdletprovider osztály meghatároz egy alapszintű Windows PowerShell szolgáltatót. Ez az osztály támogatja a szolgáltatói deklarációt, és számos olyan tulajdonságot és metódust biztosít, amelyek minden szolgáltató Windows PowerShell elérhetők. A osztályt a parancsmag hívja meg a munkamenethez elérhető összes Get-PSProvider szolgáltató listához. A parancsmag implementációját a munkamenet-állapot jellemzi.

Megjegyzés

Windows PowerShell szolgáltatók minden nyelvi Windows PowerShell elérhetők.

DriveCmdletProvider alaposztály

A System.Management.Automation.Provider.Drivecmdletprovider osztály meghatároz egy Windows PowerShell-meghajtószolgáltatót, amely támogatja az új meghajtók hozzáadására, a meglévő meghajtók eltávolítására és az alapértelmezett meghajtók inicializálására vonatkozó műveleteket. Például a fájlrendszerszolgáltató által biztosított Windows PowerShell minden csatlakoztatott kötet meghajtóit inicializálja, például merevlemezeket és CD/DVD-eszközmeghajtókat.

Ez az osztály a System.Management.Automation.Provider.Cmdletprovider alaposztályból származik. Az alábbi táblázat az osztály által elérhetővé teszi parancsmagokat sorolja fel. A felsoroltakon kívül a (munkamenet-állapot által felfedett) parancsmag egy kapcsolódó parancsmag, amely az elérhető meghajtók Get-PSDrive lekérését használja.

Parancsmag Definíció
New-PSDrive Létrehoz egy új meghajtót a munkamenethez, és továbbítja a meghajtó információit.
Remove-PSDrive Eltávolít egy meghajtót a munkamenetből.

ItemCmdletProvider alaposztály

A System.Management.Automation.Provider.Itemcmdletprovider osztály meghatároz egy Windows PowerShell-elemszolgáltatót, amely műveleteket hajt végre az adattár egyes elemein, és nem feltételez 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 az osztály által elérhetővé teszi parancsmagokat sorolja fel.

Parancsmag Definíció
Clear-Item Törli az elemek aktuális tartalmát a megadott helyen, és lecseréli azt a szolgáltató által megadott "clear" értékre. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.
Get-Item Lekéri az elemeket a megadott helyről, és streameli az eredményül kapott objektumokat.
Invoke-Item Meghívja az elem alapértelmezett műveletét a megadott elérési úton.
Set-Item Beállítja a megadott helyen található elemet a jelzett értékkel. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.
Resolve-Path Feloldja a helyettesítő karaktereket egy Windows PowerShell elérési úthoz, és streameli az elérési út adatait.
Test-Path Teszteli a megadott elérési utat, és true visszaadja, ha létezik, és false egyébként értéket ad vissza. Ez a parancsmag a IsContainer System.Management.Automation.Provider.Cmdletprovider.Writeitemobject* metódus paraméterének támogatásához van megvalósítva.

ContainerCmdletProvider alaposztály

A System.Management.Automation.Provider.Containercmdletprovider osztály meghatároz egy Windows PowerShell-tárolószolgáltatót, amely az adattárelemek tárolóit teszi elérhetővé a felhasználó számára. Vegye figyelembe, hogy Windows PowerShell tárolószolgáltató csak akkor használható, ha egy tároló (beágyazott tárolók nélkül) tartalmaz elemeket. Ha vannak beágyazott tárolók, akkor létre kell Windows PowerShell navigációszolgáltatót.

Ez az osztály a System.Management.Automation.Provider.Itemcmdletprovider alaposztályból származik. Az alábbi táblázat az osztály által megvalósított parancsmagokat definiálja.

Parancsmag Definíció
Copy-Item Elemeket másol az egyik helyről a másikra. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.
Get-Childitem Lekéri a gyermekelemeket a megadott helyen, és objektumokként streameli őket.
New-Item Új elemeket hoz létre a megadott helyen, és streameli az eredményül kapott objektumot.
Remove-Item Eltávolítja az elemeket a megadott helyről.
Rename-Item Átnevez egy elemet a megadott helyen. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.

A System.Management.Automation.Provider.Navigationcmdletprovider osztály meghatároz egy Windows PowerShell-navigációszolgáltatót, amely műveleteket hajt végre a több tárolót tartalmazó elemeken. Ez az osztály a System.Management.Automation.Provider.Containercmdletprovider alaposztályból származik. Az alábbi táblázat az osztály által elérhetővéált parancsmagokat sorolja fel.

Parancsmag Definíció
Combine-Path Két elérési utat egyesít egyetlen útvonalon, az elérési utak közötti szolgáltatóspecifikus elválasztó használatával. Ez a parancsmag sztringeket streamel.
Move-Item Áthelyezi az elemeket a megadott helyre. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.

A kapcsolódó parancsmagok a parancsmagok Parse-Path alapszintű parancsmagját Windows PowerShell. Ezzel a parancsmagtal elemezhet egy Windows PowerShell a paraméter Parent támogatásához. Streameli a szülő elérési út sztringje.

Válassza ki a támogatni kívánt szolgáltatói felületeket

A Windows PowerShell-alaposztályok egyikének származtatása mellett az Windows PowerShell-szolgáltató más funkciókat is támogathat az alábbi szolgáltatói felületek közül egy vagy több származtatása által. Ez a szakasz határozza meg ezeket az interfészeket és az ezek által támogatott parancsmagokat. Nem ismerteti az interfész által támogatott parancsmagok paramétereit. A parancsmagparaméterek adatai online elérhetők a és a Get-Command Get-Help parancsmagok használatával.

IContentCmdletProvider

A System.Management.Automation.Provider.Icontentcmdletprovider felület meghatároz egy tartalomszolgáltatót, amely műveleteket hajt végre egy adatelem tartalmán. Az alábbi táblázat a felület által elérhetővéált parancsmagokat sorolja fel.

Parancsmag Definíció
Add-Content Hozzáfűzi a megadott értékhosszokat a megadott elem tartalmához. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.
Clear-Content A megadott elem tartalmát "clear" értékre állítja. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.
Get-Content Lekéri a megadott elemek tartalmát, és streameli az eredményül kapott objektumokat.
Set-Content Lecseréli a megadott elemek meglévő tartalmát. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.

IPropertyCmdletProvider

A System.Management.Automation.Provider.Ipropertycmdletprovider felület meghatároz egy tulajdonságot Windows PowerShell-szolgáltatót, amely műveleteket hajt végre az adattár elemeinek tulajdonságain. Az alábbi táblázat a felület által elérhetővéált parancsmagokat sorolja fel.

Megjegyzés

A parancsmagok paramétere egy elem elérési útját jelzi a Path tulajdonság azonosítása helyett.

Parancsmag Definíció
Clear-ItemProperty A megadott elemek tulajdonságait "clear" értékre állítja. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.
Get-ItemProperty Lekéri a tulajdonságokat a megadott elemekből, és streameli az eredményül kapott objektumokat.
Set-ItemProperty Beállítja a megadott elemek tulajdonságait a jelzett értékekkel. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.

IDynamicPropertyCmdletProvider

A System.Management.Automation.Provider.Idynamicpropertycmdletprovider felület, amely a System.Management.Automation.Provider.Ipropertycmdletprovidereszközből származik, meghatározza a támogatott parancsmagok dinamikus paramétereit meghatározó szolgáltatót. Ez a szolgáltatótípus kezeli az olyan műveleteket, amelyek tulajdonságai futásidőben határozhatóak meg, például egy új tulajdonságművelet. Az ilyen műveletek statikusan definiált tulajdonságokkal rendelkező elemeken nem lehetségesek. Az alábbi táblázat a felület által elérhetővéált parancsmagokat sorolja fel.

Parancsmag Definíció
Copy-ItemProperty Egy tulajdonságot másol a megadott elemből egy másik elembe. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.
Move-ItemProperty Áthelyez egy tulajdonságot a megadott elemből egy másik elembe. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.
New-ItemProperty Létrehoz egy tulajdonságot a megadott elemeken, és streameli az eredményül kapott objektumokat.
Remove-ItemProperty Eltávolít egy tulajdonságot a megadott elemekből.
Rename-ItemProperty Átnevezi a megadott elemek egy tulajdonságát. Ez a parancsmag csak akkor ad át kimeneti objektumot a folyamatnak, ha meg van PassThru adva a paramétere.

ISecurityDescriptorCmdletProvider

A System.Management.Automation.Provider.Isecuritydescriptorcmdletprovider interfész biztonsági leíró funkciókat ad hozzá a szolgáltatóhoz. Ez az interfész lehetővé teszi, hogy a felhasználó lekérte és beállítsa az adattár egy elemének biztonsági leíró adatait. Az alábbi táblázat a felület által elérhetővéált parancsmagokat sorolja fel.

Parancsmag Definíció
Get-Acl Lekéri egy hozzáférés-vezérlési listában (ACL) található információkat, amely az operációs rendszer erőforrásainak , például egy fájlnak vagy objektumnak a védeleméhez használt biztonsági leíró része.
Set-Acl Beállítja egy ACL információit. Ez a System.Security.Accesscontrol.Objectsecurity egy példányának formájában van megadva a megadott elérési úthoz kijelölt elem(éken). Ez a parancsmag a beállításjegyzékben vagy bármely más szolgáltatói elemben található fájlokra, kulcsokra és alkulcsra vonatkozó információkat állíthat be, ha az Windows PowerShell-szolgáltató támogatja a biztonsági adatok beállítását.

Lásd még:

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

Az Windows PowerShell működése

Windows PowerShell SDK