Freigeben über


Erstellen eines Windows PowerShell-Containeranbieters

In diesem Thema wird beschrieben, wie Sie einen Windows PowerShell erstellen, der mit mehrschichtigen Datenspeichern arbeiten kann. Bei diesem Datenspeichertyp enthält die oberste Ebene des Speichers die Stammelemente, und jede nachfolgende Ebene wird als Knoten untergeordneter Elemente bezeichnet. Indem der Benutzer auf diesen untergeordneten Knoten arbeiten kann, kann ein Benutzer hierarchisch über den Datenspeicher interagieren.

Anbieter, die in Datenspeichern mit mehreren Ebene arbeiten können, werden als Windows PowerShell bezeichnet. Beachten Sie jedoch, dass Windows PowerShell Containeranbieter nur verwendet werden kann, wenn ein Container (keine geschachtelten Container) mit Elementen enthalten ist. Wenn geschachtelte Container installiert sind, müssen Sie einen Windows PowerShell implementieren. Weitere Informationen zum Implementieren eines Windows PowerShell-Navigationsanbieters finden Sie unter Erstellen eines Windows PowerShell-Navigationsanbieters.

Hinweis

Sie können die C#-Quelldatei (AccessDBSampleProvider04.cs) für diesen Anbieter mit dem Microsoft Windows Software Development Kit für Windows Vista und .NET Framework 3.0 Runtime Components herunterladen. Anweisungen zum Herunterladen finden Sie unter How to Install Windows PowerShell and Download the Windows PowerShell SDK. Die heruntergeladenen Quelldateien sind im Verzeichnis <PowerShell Samples> verfügbar. Weitere Informationen zu anderen Implementierungen Windows PowerShell Anbieters finden Sie unter Designing Your Windows PowerShell Provider.

Der Windows PowerShell, der hier beschrieben wird, definiert die Datenbank als ihren einzelnen Container, und die Tabellen und Zeilen der Datenbank werden als Elemente des Containers definiert.

Achtung

Beachten Sie, dass bei diesem Entwurf von einer Datenbank ausgegangen wird, die über ein Feld mit der Namens-ID verfügt und der Typ des Felds LongInteger ist.

Definieren einer Windows PowerShell-Containeranbieterklasse

Ein Windows PowerShell-Containeranbieter muss eine .NET-Klasse definieren, die von der System.Management.Automation.Provider.Containercmdletprovider-Basisklasse abgeleitet wird. Hier ist die Klassendefinition für den Windows PowerShell, der in diesem Abschnitt beschrieben wird.

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

Beachten Sie, dass das Attribut System.Management.Automation.Provider.Cmdletproviderattribute in dieser Klassendefinition zwei Parameter enthält. Der erste Parameter gibt einen benutzerfreundlichen Namen für den Anbieter an, der von der Windows PowerShell. Der zweite Parameter gibt die Windows PowerShell Funktionen an, die der Anbieter während der Befehlsverarbeitung Windows PowerShell Laufzeit verfügbar macht. Für diesen Anbieter gibt es keine Windows PowerShell funktionen, die hinzugefügt werden.

Definieren der Basisfunktionalität

Wie unter Entwerfendes Windows PowerShell-Anbieters beschrieben, wird die Klasse System.Management.Automation.Provider.Containercmdletprovider von mehreren anderen Klassen abgeleitet, die unterschiedliche Anbieterfunktionen bereitgestellt haben. Ein Windows PowerShell-Containeranbieter muss daher alle Funktionen definieren, die von diesen Klassen bereitgestellt werden.

Informationen zum Implementieren von Funktionen zum Hinzufügen sitzungsspezifischer Initialisierungsinformationen und zum Freigeben von Ressourcen, die vom Anbieter verwendet werden, finden Sie unter Creating a Basic Windows PowerShell Provider. Die meisten Anbieter (einschließlich des hier beschriebenen Anbieters) können jedoch die Standardimplementierung dieser Funktionalität verwenden, die von Windows PowerShell.

Um Zugriff auf den Datenspeicher zu erhalten, muss der Anbieter die Methoden der System.Management.Automation.Provider.Drivecmdletprovider-Basisklasse implementieren. Weitere Informationen zum Implementieren dieser Methoden finden Sie unter Creating an Windows PowerShell Drive Provider.

Um die Elemente eines Datenspeichers zu bearbeiten, z. B. Abrufen, Festlegen und Löschen von Elementen, muss der Anbieter die Methoden implementieren, die von der System.Management.Automation.Provider.Itemcmdletprovider-Basisklasse bereitgestellt werden. Weitere Informationen zum Implementieren dieser Methoden finden Sie unter Creating an Windows PowerShell Item Provider.

Abrufen von untergeordneten Elementen

Um ein untergeordnetes Element abzurufen, muss der Windows PowerShell-Containeranbieter die System.Management.Automation.Provider.Containercmdletprovider.Getchilditems*-Methode überschreiben, um Aufrufe vom Cmdlet zu Get-ChildItem unterstützen. Diese Methode ruft untergeordnete Elemente aus dem Datenspeicher ab und schreibt sie als Objekte in die Pipeline. Wenn der -Parameter des Cmdlets angegeben wird, ruft die -Methode alle -Children ab, unabhängig recurse davon, auf welcher Ebene sie sich befinden. Wenn der recurse -Parameter nicht angegeben wird, ruft die -Methode nur eine einzelne Ebene von unteren Ns ab.

Hier ist die Implementierung der System.Management.Automation.Provider.Containercmdletprovider.Getchilditems*-Methode für diesen Anbieter. Beachten Sie, dass diese Methode die untergeordneten Elemente in allen Datenbanktabellen abruft, wenn der Pfad die Access-Datenbank angibt, und die untergeordneten Elemente aus den Zeilen dieser Tabelle abruft, wenn der Pfad eine Datentabelle angibt.

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

Zu beachtende Informationen zur Implementierung von GetChildItems

Die folgenden Bedingungen können für Ihre Implementierung von System.Management.Automation.Provider.Containercmdletprovider.Getchilditems* gelten:

Anfügen dynamischer Parameter an das Get-ChildItem-Cmdlet

Manchmal erfordert das Cmdlet, das Get-ChildItem System.Management.Automation.Provider.Containercmdletprovider.Getchilditems* aufruft, zusätzliche Parameter, die zur Laufzeit dynamisch angegeben werden. Um diese dynamischen Parameter bereitstellen zu können, muss der Windows PowerShell-Containeranbieter die System.Management.Automation.Provider.Containercmdletprovider.Getchilditemsdynamicparameters*-Methode implementieren. Diese Methode ruft dynamische Parameter für das Element am angegebenen Pfad ab und gibt ein Objekt mit Eigenschaften und Feldern mit Analyseattributen zurück, die einer Cmdlet-Klasse oder einem System.Management.Automation.Runtimedefinedparameterdictionary-Objekt ähneln. Die Windows PowerShell Runtime verwendet das zurückgegebene -Objekt, um dem Cmdlet die Parameter Get-ChildItem hinzuzufügen.

Dieser Windows PowerShell Containeranbieter implementiert diese Methode nicht. Der folgende Code ist jedoch die Standardimplementierung dieser Methode.

Abrufen untergeordneter Elementnamen

Um die Namen untergeordneter Elemente abzurufen, muss der Windows PowerShell-Containeranbieter die System.Management.Automation.Provider.Containercmdletprovider.Getchildnames*-Methode überschreiben, um Aufrufe des Cmdlets zu unterstützen, wenn der Parameter angegeben Get-ChildItem Name wird. Diese Methode ruft die Namen der untergeordneten Elemente für den angegebenen Pfad oder untergeordnete Elementnamen für alle Container ab, wenn der Parameter des returnAllContainers Cmdlets angegeben ist. Ein untergeordneter Name ist der Blattteil eines Pfads. Beispielsweise ist der untergeordnete Name für den Pfad c:\windows\system32\abc.dll "abc.dll". Der untergeordnete Name für das Verzeichnis c:\windows\system32 ist "system32".

Hier ist die Implementierung der System.Management.Automation.Provider.Containercmdletprovider.Getchildnames*-Methode für diesen Anbieter. Beachten Sie, dass die -Methode Tabellennamen abruft, wenn der angegebene Pfad die Access-Datenbank (Laufwerk) und Zeilennummern angibt, wenn der Pfad eine Tabelle angibt.

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

Zu beachtende Informationen zur Implementierung von GetChildNames

Die folgenden Bedingungen können für Ihre Implementierung von System.Management.Automation.Provider.Containercmdletprovider.Getchilditems* gelten:

Anfügen dynamischer Parameter an das Get-ChildItem-Cmdlet (Name)

Manchmal Get-ChildItem erfordert das Cmdlet (mit dem -Parameter) Name zusätzliche Parameter, die zur Laufzeit dynamisch angegeben werden. Um diese dynamischen Parameter bereitstellen zu können, muss der Windows PowerShell-Containeranbieter die System.Management.Automation.Provider.Containercmdletprovider.Getchildnamesdynamicparameters*-Methode implementieren. Diese Methode ruft die dynamischen Parameter für das Element am angegebenen Pfad ab und gibt ein Objekt mit Eigenschaften und Feldern mit Analyseattributen zurück, die einer Cmdlet-Klasse oder einem System.Management.Automation.Runtimedefinedparameterdictionary-Objekt ähneln. Die Windows PowerShell Runtime verwendet das zurückgegebene -Objekt, um dem Cmdlet die Parameter Get-ChildItem hinzuzufügen.

Dieser Anbieter implementiert diese Methode nicht. Der folgende Code ist jedoch die Standardimplementierung dieser Methode.

Umbenennen von Elementen

Um ein Element umzubenennen, muss ein Windows PowerShell-Containeranbieter die System.Management.Automation.Provider.Containercmdletprovider.Renameitem*-Methode überschreiben, um Aufrufe vom Cmdlet zu Rename-Item unterstützen. Diese Methode ändert den Namen des Elements am angegebenen Pfad in den angegebenen neuen Namen. Der neue Name muss immer relativ zum übergeordneten Element (Container) sein.

Dieser Anbieter überschreibt die System.Management.Automation.Provider.Containercmdletprovider.Renameitem*-Methode nicht. Im Folgenden finden Sie jedoch die Standardimplementierung.

Zu beachtende Dinge beim Implementieren von RenameItem

Die folgenden Bedingungen können für Ihre Implementierung von System.Management.Automation.Provider.Containercmdletprovider.Renameitem* gelten:

Anfügen dynamischer Parameter an das Rename-Item-Cmdlet

Manchmal Rename-Item erfordert das Cmdlet zusätzliche Parameter, die zur Laufzeit dynamisch angegeben werden. Um diese dynamischen Parameter Windows PowerShell, muss der Containeranbieter die System.Management.Automation.Provider.Containercmdletprovider.Renameitemdynamicparameters*-Methode implementieren. Diese Methode ruft die Parameter für das Element am angegebenen Pfad ab und gibt ein Objekt mit Eigenschaften und Feldern mit Analyseattributen zurück, die einer Cmdlet-Klasse oder einem System.Management.Automation.Runtimedefinedparameterdictionary-Objekt ähneln. Die Windows PowerShell Runtime verwendet das zurückgegebene -Objekt, um dem Cmdlet die Parameter Rename-Item hinzuzufügen.

Dieser Containeranbieter implementiert diese Methode nicht. Der folgende Code ist jedoch die Standardimplementierung dieser Methode.

Erstellen neuer Elemente

Um neue Elemente zu erstellen, muss ein Containeranbieter die System.Management.Automation.Provider.Containercmdletprovider.Newitem*-Methode implementieren, um Aufrufe vom Cmdlet zu New-Item unterstützen. Diese Methode erstellt ein Datenelement, das sich am angegebenen Pfad befindet. Der type Parameter des Cmdlets enthält den vom Anbieter definierten Typ für das neue Element. Beispielsweise verwendet der FileSystem-Anbieter einen Parameter mit dem type Wert "file" oder "directory". Der newItemValue -Parameter des Cmdlets gibt einen anbieterspezifischen Wert für das neue Element an.

Hier ist die Implementierung der System.Management.Automation.Provider.Containercmdletprovider.Newitem*-Methode für diesen Anbieter.

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];

Zu beachtende Informationen zur Implementierung von NewItem

Die folgenden Bedingungen können für Ihre Implementierung von System.Management.Automation.Provider.Containercmdletprovider.Newitem* gelten:

Anfügen dynamischer Parameter an das New-Item-Cmdlet

Manchmal New-Item erfordert das Cmdlet zusätzliche Parameter, die zur Laufzeit dynamisch angegeben werden. Um diese dynamischen Parameter bereitstellen zu können, muss der Containeranbieter die Methode System.Management.Automation.Provider.Containercmdletprovider.Newitemdynamicparameters* implementieren. Diese Methode ruft die Parameter für das Element am angegebenen Pfad ab und gibt ein Objekt mit Eigenschaften und Feldern mit Analyseattributen zurück, die einer Cmdlet-Klasse oder einem System.Management.Automation.Runtimedefinedparameterdictionary-Objekt ähneln. Die Windows PowerShell Runtime verwendet das zurückgegebene -Objekt, um dem Cmdlet die Parameter New-Item hinzuzufügen.

Dieser Anbieter implementiert diese Methode nicht. Der folgende Code ist jedoch die Standardimplementierung dieser Methode.

Entfernen von Elementen

Zum Entfernen von Elementen muss der Windows PowerShell-Anbieter die System.Management.Automation.Provider.Containercmdletprovider.Removeitem*-Methode überschreiben, um Aufrufe des Cmdlets zu Remove-Item unterstützen. Diese Methode löscht ein Element aus dem Datenspeicher unter dem angegebenen Pfad. Wenn der -Parameter des Cmdlets auf festgelegt ist, entfernt die -Methode alle recurse Remove-Item true untergeordneten Elemente unabhängig von ihrer Ebene. Wenn der -Parameter auf festgelegt ist, entfernt die -Methode nur ein false einzelnes Element am angegebenen Pfad.

Dieser Anbieter unterstützt keine Elemententfernung. Der folgende Code ist jedoch die Standardimplementierung von System.Management.Automation.Provider.Containercmdletprovider.Removeitem*.

Zu beachtende Dinge beim Implementieren von RemoveItem

Die folgenden Bedingungen können für Ihre Implementierung von System.Management.Automation.Provider.Containercmdletprovider.Newitem* gelten:

Anfügen dynamischer Parameter an das Remove-Item-Cmdlet

Manchmal Remove-Item erfordert das Cmdlet zusätzliche Parameter, die zur Laufzeit dynamisch angegeben werden. Um diese dynamischen Parameter bereitstellen zu können, muss der Containeranbieter die System.Management.Automation.Provider.Containercmdletprovider.Removeitemdynamicparameters*-Methode implementieren, um diese Parameter zu verarbeiten. Diese Methode ruft die dynamischen Parameter für das Element am angegebenen Pfad ab und gibt ein Objekt mit Eigenschaften und Feldern mit Analyseattributen zurück, die einer Cmdlet-Klasse oder einem System.Management.Automation.Runtimedefinedparameterdictionary-Objekt ähneln. Die Windows PowerShell Runtime verwendet das zurückgegebene -Objekt, um dem Cmdlet die Parameter Remove-Item hinzuzufügen.

Dieser Containeranbieter implementiert diese Methode nicht. Der folgende Code ist jedoch die Standardimplementierung von System.Management.Automation.Provider.Containercmdletprovider.Removeitemdynamicparameters*.

Abfragen von untergeordneten Elementen

Um zu überprüfen, ob untergeordnete Elemente im angegebenen Pfad vorhanden sind, muss der Windows PowerShell-Containeranbieter die System.Management.Automation.Provider.Containercmdletprovider.Haschilditems*-Methode überschreiben. Diese Methode gibt true zurück, wenn das Element über children verfügt, false andernfalls . Bei einem NULL- oder leeren Pfad betrachtet die -Methode alle Elemente im Datenspeicher als children und gibt true zurück.

Hier ist die Außerkraftsetzung für die System.Management.Automation.Provider.Containercmdletprovider.Haschilditems*-Methode. Wenn mehr als zwei Pfadteile von der ChunkPath-Hilfsmethode erstellt werden, gibt die Methode zurück, da nur ein Datenbankcontainer und ein false Tabellencontainer definiert sind. Weitere Informationen zu dieser Hilfsmethode finden Sie unter Die ChunkPath-Methode wird unter Erstellen eines Windows PowerShell Elementanbieters erläutert.

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

return results;

Zu beachtende Informationen zur Implementierung von HasChildItems

Die folgenden Bedingungen können für Ihre Implementierung von System.Management.Automation.Provider.Containercmdletprovider.Haschilditems* gelten:

Kopieren von Elementen

Zum Kopieren von Elementen muss der Containeranbieter die System.Management.Automation.Provider.ContainerCmdletProvider.CopyItem-Methode implementieren, um Aufrufe vom Cmdlet zu Copy-Item unterstützen. Diese Methode kopiert ein Datenelement von dem durch den -Parameter des Cmdlets angegebenen Speicherort an den durch path den -Parameter angegebenen copyPath Speicherort. Wenn der recurse -Parameter angegeben wird, kopiert die -Methode alle Untergeordneten Container. Wenn der -Parameter nicht angegeben wird, kopiert die -Methode nur eine einzelne Ebene von Elementen.

Dieser Anbieter implementiert diese Methode nicht. Der folgende Code ist jedoch die Standardimplementierung von System.Management.Automation.Provider.ContainerCmdletProvider.CopyItem.

Zu beachtende Dinge beim Implementieren von CopyItem

Die folgenden Bedingungen gelten möglicherweise für Ihre Implementierung von System.Management.Automation.Provider.ContainerCmdletProvider.CopyItem:

Anfügen dynamischer Parameter an das Copy-Item-Cmdlet

Manchmal Copy-Item erfordert das Cmdlet zusätzliche Parameter, die zur Laufzeit dynamisch angegeben werden. Um diese dynamischen Parameter bereitstellen zu können, muss der Windows PowerShell-Containeranbieter die System.Management.Automation.Provider.Containercmdletprovider.Copyitemdynamicparameters*-Methode implementieren, um diese Parameter zu verarbeiten. Diese Methode ruft die Parameter für das Element am angegebenen Pfad ab und gibt ein Objekt mit Eigenschaften und Feldern mit Analyseattributen zurück, die einer Cmdlet-Klasse oder einem System.Management.Automation.Runtimedefinedparameterdictionary-Objekt ähneln. Die Windows PowerShell Runtime verwendet das zurückgegebene -Objekt, um dem Cmdlet die Parameter Copy-Item hinzuzufügen.

Dieser Anbieter implementiert diese Methode nicht. Der folgende Code ist jedoch die Standardimplementierung von System.Management.Automation.Provider.Containercmdletprovider.Copyitemdynamicparameters*.

Codebeispiel

Den vollständigen Beispielcode finden Sie unter AccessDbProviderSample04-Codebeispiel.

Erstellen des Windows PowerShell Anbieters

Weitere Informationen finden Sie unter Registrieren von Cmdlets, Anbietern und Hostanwendungen.

Testen des Windows PowerShell Anbieters

Wenn Ihr Windows PowerShell-Anbieter bei Windows PowerShell registriert wurde, können Sie ihn testen, indem Sie die unterstützten Cmdlets in der Befehlszeile ausführen. Beachten Sie, dass in der folgenden Beispielausgabe eine fiktive Access-Datenbank verwendet wird.

  1. Führen Sie das Get-ChildItem Cmdlet aus, um die Liste der untergeordneten Elemente aus einer Customers-Tabelle in der Access-Datenbank abzurufen.

    Get-ChildItem mydb:customers
    

    Die folgende Ausgabe wird angezeigt.

    PSPath        : AccessDB::customers
    PSDrive       : mydb
    PSProvider    : System.Management.Automation.ProviderInfo
    PSIsContainer : True
    Data          : System.Data.DataRow
    Name          : Customers
    RowCount      : 91
    Columns       :
    
  2. Führen Sie das Get-ChildItem Cmdlet erneut aus, um die Daten einer Tabelle abzurufen.

    (Get-ChildItem mydb:customers).data
    

    Die folgende Ausgabe wird angezeigt.

    TABLE_CAT   : c:\PS\northwind
    TABLE_SCHEM :
    TABLE_NAME  : Customers
    TABLE_TYPE  : TABLE
    REMARKS     :
    
  3. Verwenden Sie nun das Get-Item Cmdlet , um die Elemente in Zeile 0 in der Datentabelle abzurufen.

    Get-Item mydb:\customers\0
    

    Die folgende Ausgabe wird angezeigt.

    PSPath        : AccessDB::customers\0
    PSDrive       : mydb
    PSProvider    : System.Management.Automation.ProviderInfo
    PSIsContainer : False
    Data          : System.Data.DataRow
    RowNumber     : 0
    
  4. Get-ItemWiederverwenden, um die Daten für die Elemente in Zeile 0 abzurufen.

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

    Die folgende Ausgabe wird angezeigt.

    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. Verwenden Sie nun das New-Item Cmdlet , um einer vorhandenen Tabelle eine Zeile hinzuzufügen. Der -Parameter gibt den vollständigen Pfad zur Zeile an und muss eine Zeilennummer angeben, die größer als die vorhandene Anzahl von Zeilen Path in der Tabelle ist. Der Type -Parameter gibt "row" an, um den Typ des hinzuzufügenden Elements anzugeben. Schließlich gibt der -Parameter eine durch Trennzeichen getrennte Liste von Spaltenwerten Value für die Zeile an.

    New-Item -Path mydb:\Customers\3 -ItemType "row" -Value "3,CustomerFirstName,CustomerLastName,CustomerEmailAddress,CustomerTitle,CustomerCompany,CustomerPhone, CustomerAddress,CustomerCity,CustomerState,CustomerZip,CustomerCountry"
    
  6. Überprüfen Sie die Richtigkeit des Vorgangs für das neue Element wie folgt.

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

    Die folgende Ausgabe wird angezeigt.

    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
    

Weitere Informationen

Erstellen von Windows PowerShell Anbietern

Entwerfen eines Windows PowerShell-Anbieters

Implementieren eines Elementanbieters Windows PowerShell Elementanbieters

Implementieren eines Navigationsanbieters Windows PowerShell

Registrieren von Cmdlets, Anbietern und Hostanwendungen

Windows PowerShell SDK

Windows PowerShell-Programmiererhandbuch