Tworzenie dostawcy elementów programu Windows PowerShellCreating a Windows PowerShell Item Provider

W tym temacie opisano sposób tworzenia dostawcy środowiska Windows PowerShell, który może manipulować danymi w magazynie danych.This topic describes how to create a Windows PowerShell provider that can manipulate the data in a data store. W tym temacie elementy danych w magazynie są określane jako "elementy" magazynu danych.In this topic, the elements of data in the store are referred to as the "items" of the data store. W związku z tym dostawca, który może manipulować danymi w magazynie, jest nazywany dostawcą elementów programu Windows PowerShell.As a consequence, a provider that can manipulate the data in the store is referred to as a Windows PowerShell item provider.

Uwaga

Plik źródłowy C# (AccessDBSampleProvider03.cs) dla tego dostawcy można pobrać przy użyciu zestawu Microsoft Windows Software Development Kit dla systemów Windows Vista i .NET Framework 3,0.You can download the C# source file (AccessDBSampleProvider03.cs) for this provider using the Microsoft Windows Software Development Kit for Windows Vista and .NET Framework 3.0 Runtime Components. Aby uzyskać instrukcje dotyczące pobierania, zobacz jak zainstalować program Windows PowerShell i pobrać zestaw SDK programu Windows PowerShell.For download instructions, see How to Install Windows PowerShell and Download the Windows PowerShell SDK. Pobrane pliki źródłowe są dostępne w <PowerShell Samples> katalogu.The downloaded source files are available in the <PowerShell Samples> directory. Aby uzyskać więcej informacji na temat innych implementacji dostawcy środowiska Windows PowerShell, zobacz projektowanie dostawcy środowiska Windows PowerShell.For more information about other Windows PowerShell provider implementations, see Designing Your Windows PowerShell Provider.

Dostawca elementów programu Windows PowerShell opisany w tym temacie Pobiera elementy danych z bazy danych programu Access.The Windows PowerShell item provider described in this topic gets items of data from an Access database. W tym przypadku "element" jest tabelą w bazie danych programu Access lub wierszem w tabeli.In this case, an "item" is either a table in the Access database or a row in a table.

Definiowanie klasy dostawcy elementów programu Windows PowerShellDefining the Windows PowerShell Item Provider Class

Dostawca elementów programu Windows PowerShell musi zdefiniować klasę platformy .NET, która pochodzi z klasy podstawowej System. Management. Automation. Provider. Itemcmdletprovider .A Windows PowerShell item provider must define a .NET class that derives from the System.Management.Automation.Provider.Itemcmdletprovider base class. Poniżej znajduje się definicja klasy dla dostawcy elementów opisana w tej sekcji.The following is the class definition for the item provider described in this section.

[CmdletProvider("AccessDB", ProviderCapabilities.None)]

public class AccessDBProvider : ItemCmdletProvider

Należy zauważyć, że w tej definicji klasy atrybut System. Management. Automation. Provider. Cmdletproviderattribute zawiera dwa parametry.Note that in this class definition, the System.Management.Automation.Provider.Cmdletproviderattribute attribute includes two parameters. Pierwszy parametr określa przyjazną dla użytkownika nazwę dostawcy, który jest używany przez program Windows PowerShell.The first parameter specifies a user-friendly name for the provider that is used by Windows PowerShell. Drugi parametr określa funkcje programu Windows PowerShell, które dostawca uwidacznia środowisko uruchomieniowe środowiska Windows PowerShell podczas przetwarzania polecenia.The second parameter specifies the Windows PowerShell specific capabilities that the provider exposes to the Windows PowerShell runtime during command processing. Dla tego dostawcy nie dodano żadnych określonych funkcji programu Windows PowerShell.For this provider, there are no added Windows PowerShell specific capabilities.

Definiowanie podstawowej funkcjonalnościDefining Base Functionality

Zgodnie z opisem w artykule projektowanie dostawcy programu Windows PowerShell, Klasa System. Management. Automation. Provider. Drivecmdletprovider pochodzi z kilku innych klas, które udostępniają różne funkcje dostawcy.As described in Design Your Windows PowerShell Provider, the System.Management.Automation.Provider.Drivecmdletprovider class derives from several other classes that provided different provider functionality. W związku z tym dostawca elementów programu Windows PowerShell musi definiować wszystkie funkcje udostępniane przez te klasy.A Windows PowerShell item provider, therefore, must define all of the functionality provided by those classes.

Aby uzyskać więcej informacji na temat implementowania funkcji dodawania informacji o inicjacji specyficznych dla sesji i zwalniania zasobów używanych przez dostawcę, zobacz Tworzenie podstawowego dostawcy środowiska Windows PowerShell.For more information about how to implement functionality for adding session-specific initialization information and for releasing resources used by the provider, see Creating a Basic Windows PowerShell Provider. Jednak większość dostawców, w tym opisany tutaj dostawca, może korzystać z domyślnej implementacji tej funkcji, która jest dostarczana przez program Windows PowerShell.However, most providers, including the provider described here, can use the default implementation of this functionality that is provided by Windows PowerShell.

Zanim dostawca elementów programu Windows PowerShell będzie mógł manipulować elementami w sklepie, musi zaimplementować metody klasy bazowej System. Management. Automation. Provider. Drivecmdletprovider , aby uzyskać dostęp do magazynu danych.Before the Windows PowerShell item provider can manipulate the items in the store, it must implement the methods of the System.Management.Automation.Provider.Drivecmdletprovider base class to access to the data store. Aby uzyskać więcej informacji na temat implementowania tej klasy, zobacz Tworzenie dostawcy dysku programu Windows PowerShell.For more information about implementing this class, see Creating a Windows PowerShell Drive Provider.

Sprawdzanie poprawności ścieżkiChecking for Path Validity

Podczas wyszukiwania elementu danych środowisko uruchomieniowe programu Windows PowerShell dostarcza do dostawcy ścieżkę środowiska Windows PowerShell, zgodnie z definicją w sekcji "koncepcje element pspath ma" sposobu działania programu Windows PowerShell.When looking for an item of data, the Windows PowerShell runtime furnishes a Windows PowerShell path to the provider, as defined in the "PSPath Concepts" section of How Windows PowerShell Works. Dostawca elementów programu Windows PowerShell musi zweryfikować składnię i semantykę poprawności dla każdej ścieżki, która została do niej przeniesiona, implementując metodę System. Management. Automation. Provider. Itemcmdletprovider. Isvalidpath * .An Windows PowerShell item provider must verify the syntactic and semantic validity of any path passed to it by implementing the System.Management.Automation.Provider.Itemcmdletprovider.Isvalidpath* method. Ta metoda zwraca wartość true , jeśli ścieżka jest prawidłowa i false w przeciwnym razie.This method returns true if the path is valid, and false otherwise. Należy pamiętać, że implementacja tej metody nie powinna weryfikować istnienia elementu w ścieżce, ale tylko wtedy, gdy ścieżka jest syntaktyczna i semantycznie poprawna.Be aware that the implementation of this method should not verify the existence of the item at the path, but only that the path is syntactically and semantically correct.

Poniżej przedstawiono implementację metody System. Management. Automation. Provider. Itemcmdletprovider. Isvalidpath * dla tego dostawcy.Here is the implementation of the System.Management.Automation.Provider.Itemcmdletprovider.Isvalidpath* method for this provider. Należy zauważyć, że ta implementacja wywołuje metodę pomocnika NormalizePath, aby przekonwertować wszystkie separatory w ścieżce na jednolite.Note that this implementation calls a NormalizePath helper method to convert all separators in the path to a uniform one.

protected override bool IsValidPath(string path)
{
    bool result = true;

    // check if the path is null or empty
    if (String.IsNullOrEmpty(path))
    {
        result = false;
    }

    // convert all separators in the path to a uniform one
    path = NormalizePath(path);

    // split the path into individual chunks
    string[] pathChunks = path.Split(pathSeparator.ToCharArray());

    foreach (string pathChunk in pathChunks)
    {
        if (pathChunk.Length == 0)
        {
            result = false;
        }
    }
    return result;
} // IsValidPath

Określanie, czy element istniejeDetermining if an Item Exists

Po sprawdzeniu ścieżki środowisko uruchomieniowe programu Windows PowerShell musi określić, czy element danych istnieje w tej ścieżce.After verifying the path, the Windows PowerShell runtime must determine if an item of data exists at that path. Aby można było obsługiwać ten typ zapytania, dostawca elementów programu Windows PowerShell implementuje metodę System. Management. Automation. Provider. Itemcmdletprovider. Itemexists * .To support this type of query, the Windows PowerShell item provider implements the System.Management.Automation.Provider.Itemcmdletprovider.Itemexists* method. Ta metoda zwraca true element w określonej ścieżce i false (domyślnie) w przeciwnym razie.This method returns true an item is found at the specified path and false (default) otherwise.

Poniżej przedstawiono implementację metody System. Management. Automation. Provider. Itemcmdletprovider. Itemexists * dla tego dostawcy.Here is the implementation of the System.Management.Automation.Provider.Itemcmdletprovider.Itemexists* method for this provider. Należy zauważyć, że ta metoda wywołuje metody pomocnika PathIsDrive, ChunkPath i GetTable oraz używa obiektu zdefiniowanego przez dostawcę DatabaseTableInfo.Note that this method calls the PathIsDrive, ChunkPath, and GetTable helper methods, and uses a provider defined DatabaseTableInfo object.

protected override bool ItemExists(string path)
{
    // check if the path represented is a drive
    if (PathIsDrive(path))
    {
        return true;
    }

    // Obtain type, table name and row number from path
    string tableName;
    int rowNumber;

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

    DatabaseTableInfo table = GetTable(tableName);

    if (type == PathType.Table)
    {
        // if specified path represents a table then DatabaseTableInfo
        // object for the same should exist
        if (table != null)
        {
            return true;
        }
    }
    else if (type == PathType.Row)
    {
        // if specified path represents a row then DatabaseTableInfo should
        // exist for the table and then specified row number must be within
        // the maximum row count in the table
        if (table != null && rowNumber < table.RowCount)
        {
            return true;
        }
    }

    return false;

} // ItemExists

Zapamiętaj o implementacji ItemExistsThings to Remember About Implementing ItemExists

Poniższe warunki mogą dotyczyć implementacji elementu System. Management. Automation. Provider. Itemcmdletprovider. Itemexists *:The following conditions may apply to your implementation of System.Management.Automation.Provider.Itemcmdletprovider.Itemexists*:

Dołączanie parametrów dynamicznych do polecenia cmdlet Test-PathAttaching Dynamic Parameters to the Test-Path Cmdlet

Czasami Test-Path polecenie cmdlet wywołujące System. Management. Automation. Provider. Itemcmdletprovider. Itemexists * wymaga dodatkowych parametrów, które są określone dynamicznie w czasie wykonywania.Sometimes the Test-Path cmdlet that calls System.Management.Automation.Provider.Itemcmdletprovider.Itemexists* requires additional parameters that are specified dynamically at runtime. Aby podać te parametry dynamiczne, dostawca elementów programu Windows PowerShell musi zaimplementować metodę System. Management. Automation. Provider. Itemcmdletprovider. Itemexistsdynamicparameters * .To provide these dynamic parameters the Windows PowerShell item provider must implement the System.Management.Automation.Provider.Itemcmdletprovider.Itemexistsdynamicparameters* method. Ta metoda pobiera parametry dynamiczne dla elementu w wskazanej ścieżce i zwraca obiekt, który ma właściwości i pola, które mają atrybuty analizy podobne do klasy poleceń cmdlet lub obiektu System. Management. Automation. Runtimedefinedparameterdictionary .This method retrieves the dynamic parameters for the item at the indicated path and returns an object that has properties and fields with parsing attributes similar to a cmdlet class or a System.Management.Automation.Runtimedefinedparameterdictionary object. Środowisko uruchomieniowe programu Windows PowerShell używa zwróconego obiektu do dodawania parametrów do Test-Path polecenia cmdlet.The Windows PowerShell runtime uses the returned object to add the parameters to the Test-Path cmdlet.

Ten dostawca elementów programu Windows PowerShell nie implementuje tej metody.This Windows PowerShell item provider does not implement this method. Jednak następujący kod jest domyślną implementacją tej metody.However, the following code is the default implementation of this method.

Pobieranie elementuRetrieving an Item

Aby można było pobrać element, dostawca elementów programu Windows PowerShell musi zastąpić metodę System. Management. Automation. Provider. Itemcmdletprovider. GetItem * , aby obsługiwać wywołania z Get-Item polecenia cmdlet.To retrieve an item, the Windows PowerShell item provider must override System.Management.Automation.Provider.Itemcmdletprovider.Getitem* method to support calls from the Get-Item cmdlet. Ta metoda zapisuje element przy użyciu metody System. Management. Automation. Provider. Cmdletprovider. Writeitemobject * .This method writes the item using the System.Management.Automation.Provider.Cmdletprovider.Writeitemobject* method.

Poniżej przedstawiono implementację metody System. Management. Automation. Provider. Itemcmdletprovider. GetItem * dla tego dostawcy.Here is the implementation of the System.Management.Automation.Provider.Itemcmdletprovider.Getitem* method for this provider. Należy zauważyć, że ta metoda korzysta z metod pomocnika GetTable i GetRow — w celu pobierania elementów, które są tabelami w bazie danych programu Access lub wierszy w tabeli danych.Note that this method uses the GetTable and GetRow helper methods to retrieve items that are either tables in the Access database or rows in a data table.

protected override void GetItem(string path)
{
    // check if the path represented is a drive
    if (PathIsDrive(path))
    {
        WriteItemObject(this.PSDriveInfo, path, true);
        return;
    }// if (PathIsDrive...

     // Get table name and row information from the path and do 
     // necessary actions
     string tableName;
     int rowNumber;

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

     if (type == PathType.Table)
     {
         DatabaseTableInfo table = GetTable(tableName);
         WriteItemObject(table, path, true);
     }
     else if (type == PathType.Row)
     {
         DatabaseRowInfo row = GetRow(tableName, rowNumber);
         WriteItemObject(row, path, false);
     }
     else
     {
         ThrowTerminatingInvalidPathException(path);
     }

 } // GetItem

Zapamiętaj o implementacji GetItemThings to Remember About Implementing GetItem

Poniższe warunki mogą dotyczyć implementacji elementu System. Management. Automation. Provider. Itemcmdletprovider. GetItem *:The following conditions may apply to an implementation of System.Management.Automation.Provider.Itemcmdletprovider.Getitem*:

Dołączanie parametrów dynamicznych do polecenia cmdlet Get-ItemAttaching Dynamic Parameters to the Get-Item Cmdlet

Czasami Get-Item polecenie cmdlet wymaga dodatkowych parametrów, które są określone dynamicznie w czasie wykonywania.Sometimes the Get-Item cmdlet requires additional parameters that are specified dynamically at runtime. Aby podać te parametry dynamiczne, dostawca elementów programu Windows PowerShell musi zaimplementować metodę System. Management. Automation. Provider. Itemcmdletprovider. Getitemdynamicparameters * .To provide these dynamic parameters the Windows PowerShell item provider must implement the System.Management.Automation.Provider.Itemcmdletprovider.Getitemdynamicparameters* method. Ta metoda pobiera parametry dynamiczne dla elementu w wskazanej ścieżce i zwraca obiekt, który ma właściwości i pola, które mają atrybuty analizy podobne do klasy poleceń cmdlet lub obiektu System. Management. Automation. Runtimedefinedparameterdictionary .This method retrieves the dynamic parameters for the item at the indicated path and returns an object that has properties and fields with parsing attributes similar to a cmdlet class or a System.Management.Automation.Runtimedefinedparameterdictionary object. Środowisko uruchomieniowe programu Windows PowerShell używa zwróconego obiektu do dodawania parametrów do Get-Item polecenia cmdlet.The Windows PowerShell runtime uses the returned object to add the parameters to the Get-Item cmdlet.

Ten dostawca nie implementuje tej metody.This provider does not implement this method. Jednak następujący kod jest domyślną implementacją tej metody.However, the following code is the default implementation of this method.

Ustawianie elementuSetting an Item

Aby ustawić element, dostawca elementów programu Windows PowerShell musi zastąpić metodę System. Management. Automation. Provider. Itemcmdletprovider. SetItem * , aby obsługiwać wywołania z Set-Item polecenia cmdlet.To set an item, the Windows PowerShell item provider must override the System.Management.Automation.Provider.Itemcmdletprovider.Setitem* method to support calls from the Set-Item cmdlet. Ta metoda ustawia wartość elementu w określonej ścieżce.This method sets the value of the item at the specified path.

Ten dostawca nie udostępnia przesłonięcia dla metody System. Management. Automation. Provider. Itemcmdletprovider. SetItem * .This provider does not provide an override for the System.Management.Automation.Provider.Itemcmdletprovider.Setitem* method. Jednak poniżej jest domyślną implementacją tej metody.However, the following is the default implementation of this method.

Zapamiętaj o implementacji elementu SetItemThings to Remember About Implementing SetItem

Poniższe warunki mogą dotyczyć implementacji elementu System. Management. Automation. Provider. Itemcmdletprovider. SetItem *:The following conditions may apply to your implementation of System.Management.Automation.Provider.Itemcmdletprovider.Setitem*:

Pobieranie parametrów dynamicznych dla elementu SetItemRetrieving Dynamic Parameters for SetItem

Czasami Set-Item polecenie cmdlet wymaga dodatkowych parametrów, które są określone dynamicznie w czasie wykonywania.Sometimes the Set-Item cmdlet requires additional parameters that are specified dynamically at runtime. Aby podać te parametry dynamiczne, dostawca elementów programu Windows PowerShell musi zaimplementować metodę System. Management. Automation. Provider. Itemcmdletprovider. Setitemdynamicparameters * .To provide these dynamic parameters the Windows PowerShell item provider must implement the System.Management.Automation.Provider.Itemcmdletprovider.Setitemdynamicparameters* method. Ta metoda pobiera parametry dynamiczne dla elementu w wskazanej ścieżce i zwraca obiekt, który ma właściwości i pola, które mają atrybuty analizy podobne do klasy poleceń cmdlet lub obiektu System. Management. Automation. Runtimedefinedparameterdictionary .This method retrieves the dynamic parameters for the item at the indicated path and returns an object that has properties and fields with parsing attributes similar to a cmdlet class or a System.Management.Automation.Runtimedefinedparameterdictionary object. Środowisko uruchomieniowe programu Windows PowerShell używa zwróconego obiektu do dodawania parametrów do Set-Item polecenia cmdlet.The Windows PowerShell runtime uses the returned object to add the parameters to the Set-Item cmdlet.

Ten dostawca nie implementuje tej metody.This provider does not implement this method. Jednak następujący kod jest domyślną implementacją tej metody.However, the following code is the default implementation of this method.

Czyszczenie elementuClearing an Item

Aby wyczyścić element, dostawca elementów programu Windows PowerShell implementuje metodę System. Management. Automation. Provider. Itemcmdletprovider. ClearItem * do obsługi wywołań z Clear-Item polecenia cmdlet.To clear an item, the Windows PowerShell item provider implements the System.Management.Automation.Provider.Itemcmdletprovider.Clearitem* method to support calls from the Clear-Item cmdlet. Ta metoda powoduje wymazanie elementu danych w określonej ścieżce.This method erases the data item at the specified path.

Ten dostawca nie implementuje tej metody.This provider does not implement this method. Jednak następujący kod jest domyślną implementacją tej metody.However, the following code is the default implementation of this method.

Zapamiętaj o implementacji ClearItemThings to Remember About Implementing ClearItem

Poniższe warunki mogą dotyczyć implementacji elementu System. Management. Automation. Provider. Itemcmdletprovider. ClearItem *:The following conditions may apply to an implementation of System.Management.Automation.Provider.Itemcmdletprovider.Clearitem*:

Pobierz parametry dynamiczne dla ClearItemRetrieve Dynamic Parameters for ClearItem

Czasami Clear-Item polecenie cmdlet wymaga dodatkowych parametrów, które są określone dynamicznie w czasie wykonywania.Sometimes the Clear-Item cmdlet requires additional parameters that are specified dynamically at runtime. Aby podać te parametry dynamiczne, dostawca elementów programu Windows PowerShell musi zaimplementować metodę System. Management. Automation. Provider. Itemcmdletprovider. Clearitemdynamicparameters * .To provide these dynamic parameters the Windows PowerShell item provider must implement the System.Management.Automation.Provider.Itemcmdletprovider.Clearitemdynamicparameters* method. Ta metoda pobiera parametry dynamiczne dla elementu w wskazanej ścieżce i zwraca obiekt, który ma właściwości i pola, które mają atrybuty analizy podobne do klasy poleceń cmdlet lub obiektu System. Management. Automation. Runtimedefinedparameterdictionary .This method retrieves the dynamic parameters for the item at the indicated path and returns an object that has properties and fields with parsing attributes similar to a cmdlet class or a System.Management.Automation.Runtimedefinedparameterdictionary object. Środowisko uruchomieniowe programu Windows PowerShell używa zwróconego obiektu do dodawania parametrów do Clear-Item polecenia cmdlet.The Windows PowerShell runtime uses the returned object to add the parameters to the Clear-Item cmdlet.

Ten dostawca elementów nie implementuje tej metody.This item provider does not implement this method. Jednak następujący kod jest domyślną implementacją tej metody.However, the following code is the default implementation of this method.

Wykonywanie domyślnej akcji dla elementuPerforming a Default Action for an Item

Dostawca elementów programu Windows PowerShell może zaimplementować metodę System. Management. Automation. Provider. Itemcmdletprovider. Invokedefaultaction * , aby obsługiwać wywołania z Invoke-Item polecenia cmdlet, co pozwala dostawcy wykonać akcję domyślną dla elementu w określonej ścieżce.A Windows PowerShell item provider can implement the System.Management.Automation.Provider.Itemcmdletprovider.Invokedefaultaction* method to support calls from the Invoke-Item cmdlet, which allows the provider to perform a default action for the item at the specified path. Na przykład dostawca systemu plików może używać tej metody do wywołania ShellExecute dla określonego elementu.For example, the FileSystem provider might use this method to call ShellExecute for a specific item.

Ten dostawca nie implementuje tej metody.This provider does not implement this method. Jednak następujący kod jest domyślną implementacją tej metody.However, the following code is the default implementation of this method.

Zapamiętaj o implementacji InvokeDefaultActionThings to Remember About Implementing InvokeDefaultAction

Poniższe warunki mogą dotyczyć implementacji elementu System. Management. Automation. Provider. Itemcmdletprovider. Invokedefaultaction *:The following conditions may apply to an implementation of System.Management.Automation.Provider.Itemcmdletprovider.Invokedefaultaction*:

Pobierz parametry dynamiczne dla InvokeDefaultActionRetrieve Dynamic Parameters for InvokeDefaultAction

Czasami Invoke-Item polecenie cmdlet wymaga dodatkowych parametrów, które są określone dynamicznie w czasie wykonywania.Sometimes the Invoke-Item cmdlet requires additional parameters that are specified dynamically at runtime. Aby podać te parametry dynamiczne, dostawca elementów programu Windows PowerShell musi zaimplementować metodę System. Management. Automation. Provider. Itemcmdletprovider. Invokedefaultactiondynamicparameters * .To provide these dynamic parameters the Windows PowerShell item provider must implement the System.Management.Automation.Provider.Itemcmdletprovider.Invokedefaultactiondynamicparameters* method. Ta metoda pobiera parametry dynamiczne dla elementu w wskazanej ścieżce i zwraca obiekt, który ma właściwości i pola, które mają atrybuty analizy podobne do klasy poleceń cmdlet lub obiektu System. Management. Automation. Runtimedefinedparameterdictionary .This method retrieves the dynamic parameters for the item at the indicated path and returns an object that has properties and fields with parsing attributes similar to a cmdlet class or a System.Management.Automation.Runtimedefinedparameterdictionary object. Środowisko uruchomieniowe programu Windows PowerShell używa zwróconego obiektu do dodawania parametrów dynamicznych do Invoke-Item polecenia cmdlet.The Windows PowerShell runtime uses the returned object to add the dynamic parameters to the Invoke-Item cmdlet.

Ten dostawca elementów nie implementuje tej metody.This item provider does not implement this method. Jednak następujący kod jest domyślną implementacją tej metody.However, the following code is the default implementation of this method.

Implementowanie metod i klas pomocnikaImplementing Helper Methods and Classes

Ten dostawca elementów implementuje kilka metod i klas pomocników, które są używane przez publiczne metody przesłaniania zdefiniowane przez program Windows PowerShell.This item provider implements several helper methods and classes that are used by the public override methods defined by Windows PowerShell. Kod dla tych metod i klas pomocnika przedstawiono w sekcji przykład kodu .The code for these helper methods and classes are shown in the Code Sample section.

NormalizePath, MetodaNormalizePath Method

Ten dostawca elementów implementuje metodę pomocnika NormalizePath, aby upewnić się, że ścieżka ma spójny format.This item provider implements a NormalizePath helper method to ensure that the path has a consistent format. Określony format używa ukośnika odwrotnego ( \ ) jako separatora.The format specified uses a backslash (\) as a separator.

PathIsDrive, MetodaPathIsDrive Method

Ten dostawca elementów implementuje metodę pomocnika PathIsDrive w celu określenia, czy określona ścieżka jest w rzeczywistości nazwą dysku.This item provider implements a PathIsDrive helper method to determine if the specified path is actually the drive name.

ChunkPath, MetodaChunkPath Method

Ten dostawca elementów implementuje metodę pomocnika ChunkPath, która dzieli określoną ścieżkę, aby Dostawca mógł zidentyfikować poszczególne elementy.This item provider implements a ChunkPath helper method that breaks up the specified path so that the provider can identify its individual elements. Zwraca tablicę składającą się z elementów ścieżki.It returns an array composed of the path elements.

GetTable — MetodaGetTable Method

Ten dostawca elementów implementuje metodę pomocnika GetTables, która zwraca obiekt DatabaseTableInfo reprezentujący informacje o tabeli określonej w wywołaniu.This item provider implements the GetTables helper method that returns a DatabaseTableInfo object that represents information about the table specified in the call.

GetRow, metodaGetRow Method

Metoda System. Management. Automation. Provider. Itemcmdletprovider. GetItem * tego dostawcy elementów wywołuje metodę pomocnika GetRows.The System.Management.Automation.Provider.Itemcmdletprovider.Getitem* method of this item provider calls the GetRows helper method. Ta metoda pomocnika pobiera obiekt DatabaseRowInfo, który reprezentuje informacje o określonym wierszu w tabeli.This helper method retrieves a DatabaseRowInfo object that represents information about the specified row in the table.

Klasa DatabaseTableInfoDatabaseTableInfo Class

Ten dostawca elementów definiuje klasę DatabaseTableInfo, która reprezentuje kolekcję informacji w tabeli danych w bazie danych.This item provider defines a DatabaseTableInfo class that represents a collection of information in a data table in the database. Ta klasa jest podobna do klasy System. IO. DirectoryInfo .This class is similar to the System.IO.Directoryinfo class.

Dostawca przykładowego elementu definiuje metodę DatabaseTableInfo. GetTables, która zwraca kolekcję obiektów informacji o tabeli definiujących tabele w bazie danych.The sample item provider defines a DatabaseTableInfo.GetTables method that returns a collection of table information objects defining the tables in the database. Ta metoda zawiera blok try/catch, aby upewnić się, że każdy błąd bazy danych jest wyświetlany jako wiersz z wpisami zero.This method includes a try/catch block to ensure that any database error shows up as a row with zero entries.

Klasa DatabaseRowInfoDatabaseRowInfo Class

Ten dostawca elementów definiuje klasę pomocnika DatabaseRowInfo, która reprezentuje wiersz w tabeli bazy danych.This item provider defines the DatabaseRowInfo helper class that represents a row in a table of the database. Ta klasa jest podobna do klasy System. IO. FileInfo .This class is similar to the System.IO.FileInfo class.

Przykładowy dostawca definiuje metodę DatabaseRowInfo. GetRows, która zwraca kolekcję obiektów informacji o wierszu dla określonej tabeli.The sample provider defines a DatabaseRowInfo.GetRows method to return a collection of row information objects for the specified table. Ta metoda zawiera blok try/catch do wyjątków pułapek.This method includes a try/catch block to trap exceptions. Wszelkie błędy nie spowodują żadnych informacji o wierszach.Any errors will result in no row information.

Przykładowy kodCode Sample

Aby uzyskać kompletny przykładowy kod, zobacz przykład kodu AccessDbProviderSample03.For complete sample code, see AccessDbProviderSample03 Code Sample.

Definiowanie typów i formatowania obiektówDefining Object Types and Formatting

Podczas pisania dostawcy może być konieczne dodanie elementów członkowskich do istniejących obiektów lub zdefiniowanie nowych obiektów.When writing a provider, it may be necessary to add members to existing objects or define new objects. Po zakończeniu Utwórz plik typu, którego program Windows PowerShell może użyć do zidentyfikowania elementów członkowskich obiektu i pliku formatu, który definiuje sposób wyświetlania obiektu.When finished, create a Types file that Windows PowerShell can use to identify the members of the object and a Format file that defines how the object is displayed. Aby uzyskać więcej informacji na temat, zobacz rozszerzanie typów obiektów i formatowanie.For more information about , see Extending Object Types and Formatting.

Kompilowanie dostawcy środowiska Windows PowerShellBuilding the Windows PowerShell provider

Zobacz , jak zarejestrować polecenia cmdlet, dostawców i aplikacje hosta.See How to Register Cmdlets, Providers, and Host Applications.

Testowanie dostawcy programu Windows PowerShellTesting the Windows PowerShell provider

Gdy ten dostawca elementów programu Windows PowerShell jest zarejestrowany w programie Windows PowerShell, można tylko przetestować podstawowe i funkcjonalne funkcje dostawcy.When this Windows PowerShell item provider is registered with Windows PowerShell, you can only test the basic and drive functionality of the provider. Aby przetestować Manipulowanie elementami, należy również zaimplementować funkcje kontenera opisane w temacie implementowanie dostawcy kontenera środowiska Windows PowerShell.To test the manipulation of items, you must also implement container functionality described in Implementing a Container Windows PowerShell Provider.

Zobacz teżSee Also

Windows PowerShell SDKWindows PowerShell SDK

Windows PowerShell — przewodnik programistyWindows PowerShell Programmer's Guide

Tworzenie dostawców programu Windows PowerShellCreating Windows PowerShell Providers

Projektowanie dostawcy środowiska Windows PowerShellDesigning Your Windows PowerShell provider

Rozszerzanie typów i formatowania obiektówExtending Object Types and Formatting

Jak działa środowisko Windows PowerShellHow Windows PowerShell Works

Tworzenie dostawcy kontenera środowiska Windows PowerShellCreating a Container Windows PowerShell provider

Tworzenie dostawcy środowiska Windows PowerShellCreating a Drive Windows PowerShell provider

Jak zarejestrować polecenia cmdlet, dostawców i aplikacje hostaHow to Register Cmdlets, Providers, and Host Applications