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


Windows PowerShell konténerszolgáltató létrehozása

Ez a téma bemutatja, hogyan lehet létrehozni egy Windows PowerShell szolgáltatót, amely többrétegű adattárolókon tud dolgozni. Ebben az adattároló típusban a tároló felső szintje tartalmazza a gyökérelemeket, és minden további szintet gyermek elemek csomópontjának nevezik. Azáltal, hogy a felhasználó ezeken a gyermekcsomópontokon dolgozhat, hierarchikusan interakcióba léphet az adattárolón keresztül.

Azokat a szolgáltatókat, akik többszintű adattárolókon dolgozhatnak, Windows PowerShell konténer szolgáltatóknak nevezik. Azonban ne feledd, hogy a Windows PowerShell konténer szolgáltatót csak akkor lehet használni, 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. További információért a Windows PowerShell navigációs szolgáltató megvalósításáról lásd: Windows PowerShell navigációs szolgáltató létrehozása.

Megjegyzés:

Letöltheti a C# forrásfájlt (AccessDBSampleProvider04.cs) ehhez a szolgáltatóhoz a Microsoft Windows Software Development Kit for Windows Vista és a .NET Framework 3.0 Runtime Components segítségével. 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 forrásfájlok elérhetők a <PowerShell Samples> könyvtárban. További információért más Windows PowerShell szolgáltató megvalósításokról lásd: Designing Your Windows PowerShell Provider.

Az itt leírt Windows PowerShell konténer szolgáltató az adatbázist egyetlen konténerként határozza meg, az adatbázis táblái és sorai pedig a konténer elemeiként jelennek meg.

Caution

Fontos tudni, hogy ez a kialakítás egy olyan adatbázist feltételez, amelynek van egy mezője a névazonosítóval, és a mező típusa LongInteger.

Windows PowerShell konténer szolgáltató osztály meghatározása

Egy Windows PowerShell konténer szolgáltatónak olyan .NET osztályt kell definiálnia, amely a System.Management.Automation.Provider.ContainerCmdletProvider alaposztályból származik. Íme a Windows PowerShell konténer szolgáltató osztálydefiníciója, amelyet ebben a szakaszban leírnak.

[CmdletProvider("AccessDB", ProviderCapabilities.None)]
public class AccessDBProvider : ContainerCmdletProvider

Figyeljük meg, hogy ebben az osztálydefinícióban a System.Management.Automation.Provider.CmdletProviderAttribute attribútum két paramétert tartalmaz. Az első paraméter egy felhasználóbarát nevet ad a szolgáltatónak, amelyet a Windows PowerShell használ. A második paraméter meghatározza azokat a Windows PowerShell-specifikus képességeket, amelyeket a szolgáltató a Windows PowerShell futási idejének a parancsfeldolgozás során kiterjeszt. Ennél a szolgáltatónál nincsenek Windows PowerShell-specifikus funkciók, amelyek hozzáadnak.

Az alapfunkcionalitás meghatározása

Ahogy a Windows PowerShell szolgáltató tervezése című részben leírva, a System.Management.Automation.Provider.ContainerCmdletProvider osztály több más osztályból származik, amelyek eltérő szolgáltatói funkcialiságot biztosítottak. Ezért egy Windows PowerShell konténer szolgáltatónak meg kell határoznia az összes ilyen osztály által biztosított funkciókat.

A munka-alkózásra specifikus inicializációs információk hozzáadására és a szolgáltató által használt erőforrások felszabadítására szolgáló funkciók megvalósításához lásd: Alap Windows PowerShell szolgáltató létrehozása. Azonban a legtöbb szolgáltató (beleértve az itt leírt szolgáltatót is) használhatja ennek a funkciónak a Windows PowerShell által biztosított alapértelmezett megvalósítását.

Az adattárolóhoz való hozzáféréshez a szolgáltatónak a System.Management.Automation.Provider.DriveCmdletProvider alaposztály módszereit kell végrehajtania. További információért ezeknek a módszereknek a megvalósításáról lásd: Windows PowerShell meghajtó szolgáltató létrehozása.

Az adattároló elemeinek, például az elemek megszerzése, beállítása és törlése kezelésére a szolgáltatónak a System.Management.Automation.Provider.ItemCmdletProvider alaposztály által biztosított módszereket kell alkalmaznia. További információért ezeknek a módszereknek a megvalósításáról lásd : Windows PowerShell Item Provider létrehozása.

Gyermektárgyak visszaszerzése

Egy gyermek elem visszahívásához a Windows PowerShell konténer szolgáltatónak felül kell írnia a System.Management.Automation.Provider.ContainerCmdletProvider.GetChildItems* metódumat, hogy támogassa a parancsnok hívásait Get-ChildItem . Ez a módszer lekéri a gyermek elemeket az adattárolóból, és objektumként írja be őket a csővezetékre. Ha a recurse cmdlet paramétere meg van jelölve, a metódus minden gyermeket visszahív, függetlenül attól, hogy milyen szinten vannak. Ha a recurse paraméter nincs megadva, a metódus csak egyetlen szintű gyermeket kér le.

Íme a System.Management.Automation.Provider.ContainerCmdletProvider.GetChildItems* módszer megvalósítása ehhez a szolgáltatóhoz. Figyeljük meg, hogy ez a módszer a gyermekelemeket az összes adatbázis táblából lekéri, ha az út az Access adatbázist jelöli, és a gyermek elemeket a tábla soraiból, ha az út adattáblát jelöl.

protected override void GetChildItems(string path, bool recurse)
{
    // If path represented is a drive then the children in the path are 
    // tables. Hence all tables in the drive represented will have to be
    // returned
    if (PathIsDrive(path))
    {
        foreach (DatabaseTableInfo table in GetTables())
        {
            WriteItemObject(table, path, true);

            // if the specified item exists and recurse has been set then 
            // all child items within it have to be obtained as well
            if (ItemExists(path) && recurse)
            {
                GetChildItems(path + pathSeparator + table.Name, recurse);
            }
        } // foreach (DatabaseTableInfo...
    } // if (PathIsDrive...
    else
    {
        // Get the table name, row number and type of path from the
        // path specified
        string tableName;
        int rowNumber;

        PathType type = GetNamesFromPath(path, out tableName, out rowNumber);

        if (type == PathType.Table)
        {
            // Obtain all the rows within the table
            foreach (DatabaseRowInfo row in GetRows(tableName))
            {
                WriteItemObject(row, path + pathSeparator + row.RowNumber,
                        false);
            } // foreach (DatabaseRowInfo...
        }
        else if (type == PathType.Row)
        {
            // In this case the user has directly specified a row, hence
            // just give that particular row
            DatabaseRowInfo row = GetRow(tableName, rowNumber);
            WriteItemObject(row, path + pathSeparator + row.RowNumber,
                        false);
        }
        else
        {
            // In this case, the path specified is not valid
            ThrowTerminatingInvalidPathException(path);
        }
    } // else
} // GetChildItems

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

Az alábbi feltételek alkalmazhatók a System.Management.Automation.Provider.ContainerCmdletProvider.GetChildItems* implementációjára:

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

Néha az a Get-ChildItem cmdlet, amely a System.Management.Automation.Provider.ContainerCmdletProvider.GetChildItems* fájlokat hívja, további paramétereket igényel, amelyeket futás közben dinamikusan definiálnak. Ezeknek a dinamikus paramétereknek a biztosításához a Windows PowerShell konténer szolgáltatónak meg kell valósítania a System.Management.Automation.Provider.ContainerCmdletProvider.GetChildItemsDynamicParameters* metódust. Ez a módszer a megadott úton lévő elem dinamikus paramétereit keresi, és 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 Get-ChildItem cmdlethez.

Ez a Windows PowerShell konténer szolgáltató nem valósítja meg ezt a módszert. Azonban a következő kód a módszer alapértelmezett implementációja.

Gyermek tárgynevek lekérése

A gyermekelemek neveinek visszavételéhez a Windows PowerShell konténer szolgáltatónak felül kell írnia a System.Management.Automation.Provider.ContainerCmdletProvider.GetChildNames* metódust, hogy támogassa a cmdlet hívásait Get-ChildItem , amikor a Name paraméter meg van szabva. Ez a módszer a megadott út gyermekelemeinek neveit, vagy a gyermek elemneveket minden konténerhez, ha a returnAllContainers cmdlet paramétere meg van szabva. A gyermeknév az ösvény levélrésze. Például az út gyermekneve C:\windows\system32\abc.dll "abc.dll". A C:\windows\system32 könyvtár gyermekneve "system32".

Íme a System.Management.Automation.Provider.ContainerCmdletProvider.GetChildNames* módszer megvalósítása ehhez a szolgáltatóhoz. Figyeljük meg, hogy a metódus lekéri a táblaneveket, ha a megadott út a Access adatbázist (meghajtót) jelzi, és sorszámokat, ha az út táblát jelöl.

protected override void GetChildNames(string path,
                              ReturnContainers returnContainers)
{
    // If the path represented is a drive, then the child items are
    // tables. get the names of all the tables in the drive.
    if (PathIsDrive(path))
    {
        foreach (DatabaseTableInfo table in GetTables())
        {
            WriteItemObject(table.Name, path, true);
        } // foreach (DatabaseTableInfo...
    } // if (PathIsDrive...
    else
    {
        // Get type, table name and row number from path specified
        string tableName;
        int rowNumber;

        PathType type = GetNamesFromPath(path, out tableName, out rowNumber);

        if (type == PathType.Table)
        {
            // Get all the rows in the table and then write out the 
            // row numbers.
            foreach (DatabaseRowInfo row in GetRows(tableName))
            {
                WriteItemObject(row.RowNumber, path, false);
            } // foreach (DatabaseRowInfo...
        }
        else if (type == PathType.Row)
        {
            // In this case the user has directly specified a row, hence
            // just give that particular row
            DatabaseRowInfo row = GetRow(tableName, rowNumber);

            WriteItemObject(row.RowNumber, path, false);
        }
        else
        {
            ThrowTerminatingInvalidPathException(path);
        }
    } // else
} // GetChildNames

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

Az alábbi feltételek alkalmazhatók a System.Management.Automation.Provider.ContainerCmdletProvider.GetChildItems* implementációjára:

Dinamikus paraméterek csatolása a Get-ChildItem parancsnogahoz (név)

Néha a Get-ChildItem cmdlet (a Name paraméterrel) további paramétereket igényel, amelyeket dinamikusan megadnak futás közben. Ezeknek a dinamikus paramétereknek a biztosításához a Windows PowerShell konténer szolgáltatónak meg kell valósítania a System.Management.Automation.Provider.ContainerCmdletProvider.GetChildNamesDynamicParameters* metódust. Ez a módszer visszanyeri a jelzett útvonalon lévő elem dinamikus paramétereit, és olyan objektumot ad vissza, amelynek tulajdonságai és mezői olyan parzálási attribútumokkal rendelkeznek, amelyek hasonló a 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 Get-ChildItem cmdlethez.

Ez a szolgáltató nem alkalmazza ezt a módszert. Azonban a következő kód a módszer alapértelmezett implementációja.

Elemek átnevezése

Egy elem átnevezéséhez a Windows PowerShell konténer szolgáltatónak felül kell írnia a System.Management.Automation.Provider.ContainerCmdletProvider.RenameItem* metódust, hogy támogassa a Rename-Item parancsnok hívásait. Ez a módszer megváltoztatja az adott útvonalon lévő elem nevét az új megadott névre. Az új névnek mindig relatív kell lennie az anyaelemhez (tartályhoz).

Ez a szolgáltató nem írja felül a System.Management.Automation.Provider.ContainerCmdletProvider.RenameItem* metódust. Azonban az alábbi alapértelmezett megvalósítás.

Fontos dolgok, amiket érdemes megjegyezni a RenameItem megvalósításához

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

Dinamikus paraméterek hozzácsatolása a Rename-Item cmdlethez

Néha a Rename-Item cmdlet további paramétereket igényel, amelyeket futás közben dinamikusan megadnak. A dinamikus paraméterek biztosításához a Windows PowerShell konténer szolgáltatónak a System.Management.Automation.Provider.ContainerCmdletProvider.RenameItemDynamicParameters* módszert kell végrehajtania. Ez a módszer lekéri az elem paramétereit a megadott úton, és 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 Rename-Item cmdlethez.

Ez a konténerszolgáltató nem valósítja meg ezt a módszert. Azonban a következő kód a módszer alapértelmezett implementációja.

Új tárgyak létrehozása

Új elemek létrehozásához a konténer szolgáltatónak a System.Management.Automation.Provider.ContainerCmdletProvider.NewItem* módszert kell alkalmaznia, hogy támogassa a parancsnokból érkező hívásokat New-Item . Ez a módszer egy adatelemet hoz létre, amely a megadott úton található. A type cmdlet paramétere tartalmazza az új tétel szolgáltató által definiált típusát. Például a FileSystem szolgáltató egy type paramétert használ, amelynek értéke "file" vagy "directory". A newItemValue cmdlet paramétere szolgáltató-specifikus értéket ad az új elemre.

Íme a System.Management.Automation.Provider.ContainerCmdletProvider.NewItem* módszer megvalósítása ehhez a szolgáltatóhoz.

protected override void NewItem( string path, string type, object newItemValue )
{
    // Create the new item here after
    // performing necessary validations
    //
    // WriteItemObject(newItemValue, path, false);

    // Example
    //
    // if (ShouldProcess(path, "new item"))
    // {
    //      // Create a new item and then call WriteObject
    //      WriteObject(newItemValue, path, false);
    // }

} // NewItem
{
    case 1:
        {
            string name = pathChunks[0];

            if (TableNameIsValid(name))
            {
                tableName = name;
                retVal = PathType.Table;
            }
        }
        break;

    case 2:
        {
            string name = pathChunks[0];

Fontos dolgok, amiket érdemes megjegyezni a NewItem megvalósításához

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

Dinamikus paraméterek hozzácsatolása a New-Item cmdlethez

Néha a New-Item cmdlet további paramétereket igényel, amelyeket futás közben dinamikusan megadnak. A dinamikus paraméterek megadásához a konténer szolgáltatónak a System.Management.Automation.Provider.ContainerCmdletProvider.NewItemDynamicParameters* módszert kell végrehajtania. Ez a módszer lekéri az elem paramétereit a megadott úton, és 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 New-Item cmdlethez.

Ez a szolgáltató nem alkalmazza ezt a módszert. Azonban a következő kód a módszer alapértelmezett implementációja.

Tárgyak eltávolítása

Az elemek eltávolításához a Windows PowerShell szolgáltatónak felül kell írnia a System.Management.Automation.Provider.ContainerCmdletProvider.RemoveItem* metódumat, hogy támogassa a parancsnok hívásait Remove-Item . Ez a módszer törli az adattárolóból az adott útvonalon. Ha a recurseRemove-Item cmdlet trueparamétere , a metódus eltávolítja az összes gyerektárgyat, függetlenül a szintjüktől. Ha a paraméter , falsea metódus csak egyetlen elemet távolít el a megadott úton.

Ez a szolgáltató nem támogatja a tárgyak eltávolítását. Azonban a következő kód a System.Management.Automation.Provider.ContainerCmdletProvider.RemoveItem* alapértelmezett implementációja.

Fontos dolgok, amiket érdemes megjegyezni a RemoveItem bevezetéséről

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

Dinamikus paraméterek hozzácsatolása a Remove-Item cmdlethez

Néha a Remove-Item cmdlet további paramétereket igényel, amelyeket futás közben dinamikusan megadnak. A dinamikus paraméterek megadásához a konténer szolgáltatónak be kell valósítania a System.Management.Automation.Provider.ContainerCmdletProvider.RemoveItemDynamicParameters* metódusát ezeknek a paramétereknek a kezelésére. Ez a módszer visszanyeri a jelzett útvonalon lévő elem dinamikus paramétereit, és olyan objektumot ad vissza, amelynek tulajdonságai és mezői olyan parzálási attribútumokkal rendelkeznek, amelyek hasonló a 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 Remove-Item cmdlethez.

Ez a konténerszolgáltató nem valósítja meg ezt a módszert. Azonban a következő kód a System.Management.Automation.Provider.ContainerCmdletProvider.RemoveItemDynamicParameters* alapértelmezett megvalósítása.

Gyermek elemek lekérdezése

Ahhoz, hogy ellenőrizzük, léteznek-e gyermek elemek a megadott úton, a Windows PowerShell konténer szolgáltatónak felül kell írnia a System.Management.Automation.Provider.ContainerCmdletProvider.HasChildItems* metódust. Ez a módszer akkor jelenik meg, true ha az elemnek vannak gyermekei, és false egyébként. Null vagy üres út esetén a módszer minden adattároló elemet gyermeknek tekint, és visszaadja true.

Íme a System.Management.Automation.Provider.ContainerCmdletProvider.HasChildItems* metódus felülbírálása. Ha a ChunkPath segédmetódus több mint két útrészt hoz, a metódus visszaadja false, mivel csak egy adatbázis-tároló és egy táblatároló van definiálva. További információért erről a segítő módszerről lásd a ChunkPath módszert, amelyet a Windows PowerShell Item Provider létrehozása című részben tárgyalnak.

protected override bool HasChildItems( string path )
{
    return false;
} // HasChildItems
        ErrorCategory.InvalidOperation, tableName));
}

return results;

Fontos dolgok, amiket érdemes megjegyezni a HasChildItems bevezetéséről

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

Tárgyak másolása

Az elemek másolásához a konténer szolgáltatónak a System.Management.Automation.Provider.ContainerCmdletProvider.CopyItem metódusot kell alkalmaznia, hogy támogassa a Copy-Item cmdletből érkező hívásokat. Ez a módszer egy adatelemet másolt a cmdlet paramétere által jelölt helyről path a paraméter által jelölt copyPath helyre. Ha a recurse paraméter meg van szabva, a metódus lemásolja az összes alkonténert. Ha a paraméter nincs megadva, a metódus csak egyetlen szintű elemeket másol le.

Ez a szolgáltató nem alkalmazza ezt a módszert. Azonban a következő kód a System.Management.Automation.Provider.ContainerCmdletProvider.CopyItem alapértelmezett implementációja.

Fontos dolgok, amiket érdemes megjegyezni a CopyItem megvalósításához

Az alábbi feltételek alkalmazhatók a System.Management.Automation.Provider.ContainerCmdletProvider.CopyItem implementációjára:

Dinamikus paraméterek hozzácsatolása a Copy-Item cmdlethez

Néha a Copy-Item cmdlet további paramétereket igényel, amelyeket futás közben dinamikusan megadnak. A dinamikus paraméterek megadásához a Windows PowerShell konténer szolgáltatónak a System.Management.Automation.Provider.ContainerCmdletProvider.CopyItemDynamicParameters* metódusát kell megvalósítania a paraméterek kezelésére. Ez a módszer lekéri az elem paramétereit a megadott úton, és 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 Copy-Item cmdlethez.

Ez a szolgáltató nem alkalmazza ezt a módszert. Azonban a következő kód a System.Management.Automation.Provider.ContainerCmdletProvider.CopyItemDynamicParameters* alapértelmezett implementációja.

Kódminta

A teljes mintakódért lásd: AccessDbProviderSample04 Kód minta (AccessDbProviderSample04).

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

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

A Windows PowerShell szolgáltató tesztelése

Amikor a Windows PowerShell szolgáltatód regisztrálva van Windows PowerShell-re, tesztelheted a támogatott cmdlet-eket a parancssoron futtatva. Ne feledd, hogy a következő példakimenet egy fiktív Access adatbázist használ.

  1. Futtatd a Get-ChildItem cmdletet, hogy a Felhasználó adatbázis Ügyfelek táblájából lehessen szerezni a gyermek elemek listáját.

    Get-ChildItem mydb:customers
    

    A következő kimenet jelenik meg.

    PSPath        : AccessDB::customers
    PSDrive       : mydb
    PSProvider    : System.Management.Automation.ProviderInfo
    PSIsContainer : True
    Data          : System.Data.DataRow
    Name          : Customers
    RowCount      : 91
    Columns       :
    
  2. Futtasd újra a Get-ChildItem parancsnokot, hogy lekérd egy tábla adatait.

    (Get-ChildItem mydb:customers).Data
    

    A következő kimenet jelenik meg.

    TABLE_CAT   : C:\PS\northwind
    TABLE_SCHEM :
    TABLE_NAME  : Customers
    TABLE_TYPE  : TABLE
    REMARKS     :
    
  3. Most használd a Get-Item cmdlet-et, hogy lekérd az adattábla 0. sorában lévő elemeket.

    Get-Item mydb:\customers\0
    

    A következő kimenet jelenik meg.

    PSPath        : AccessDB::customers\0
    PSDrive       : mydb
    PSProvider    : System.Management.Automation.ProviderInfo
    PSIsContainer : False
    Data          : System.Data.DataRow
    RowNumber     : 0
    
  4. Újra felhasználva Get-Item visszaszerezzük az 0. sor elemei adatait.

    (Get-Item mydb:\customers\0).Data
    

    A következő kimenet jelenik meg.

    CustomerID   : 1234
    CompanyName  : Fabrikam
    ContactName  : Eric Gruber
    ContactTitle : President
    Address      : 4567 Main Street
    City         : Buffalo
    Region       : NY
    PostalCode   : 98052
    Country      : USA
    Phone        : (425) 555-0100
    Fax          : (425) 555-0101
    
  5. Most használd a New-Item cmdlet-et, hogy hozzáadj egy sort egy meglévő táblához. A Path paraméter megadja a teljes útvonalat a sorhoz, és olyan sorszámot kell jelölnie, amely nagyobb, mint a táblázatban lévő meglévő sorszám. A Type paraméter jelzi Row , hogy melyik típusú elemet kell hozzáadni. Végül a Value paraméter egy vesszővel osztott oszlopérték-listát ad meg a sorhoz.

    New-Item -Path mydb:\Customers\3 -ItemType "Row" -Value "3,CustomerFirstName,CustomerLastName,CustomerEmailAddress,CustomerTitle,CustomerCompany,CustomerPhone, CustomerAddress,CustomerCity,CustomerState,CustomerZip,CustomerCountry"
    
  6. Az új tétel műveletének helyességét az alábbiak szerint ellenőrizzük.

    PS mydb:\> cd Customers
    PS mydb:\Customers> (Get-Item 3).Data
    

    A következő kimenet jelenik meg.

    ID        : 3
    FirstName : Eric
    LastName  : Gruber
    Email     : ericgruber@fabrikam.com
    Title     : President
    Company   : Fabrikam
    WorkPhone : (425) 555-0100
    Address   : 4567 Main Street
    City      : Buffalo
    State     : NY
    Zip       : 98052
    Country   : USA
    

Lásd még:

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

Windows PowerShell szolgáltató tervezése

Egy Item Windows PowerShell szolgáltató megvalósítása

Navigációs Windows PowerShell szolgáltató megvalósítása

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

Windows PowerShell SDK

Windows PowerShell programozói útmutató