Creazione di un provider di elementi di Windows PowerShellCreating a Windows PowerShell Item Provider

In questo argomento viene descritto come creare un provider di Windows PowerShell in grado di modificare i dati in un archivio dati.This topic describes how to create a Windows PowerShell provider that can manipulate the data in a data store. In questo argomento, gli elementi dei dati nell'archivio vengono definiti "elementi" dell'archivio dati.In this topic, the elements of data in the store are referred to as the "items" of the data store. Di conseguenza, un provider che può manipolare i dati nell'archivio viene definito provider di elementi di Windows PowerShell.As a consequence, a provider that can manipulate the data in the store is referred to as a Windows PowerShell item provider.

Nota

È possibile scaricare il file di origine C# (AccessDBSampleProvider03.cs) per questo provider utilizzando Microsoft Windows Software Development Kit per i componenti di runtime di Windows Vista e .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. Per istruzioni sul download, vedere come installare Windows PowerShell e scaricare Windows PowerShell SDK.For download instructions, see How to Install Windows PowerShell and Download the Windows PowerShell SDK. I file di origine scaricati sono disponibili nella <PowerShell Samples> Directory.The downloaded source files are available in the <PowerShell Samples> directory. Per ulteriori informazioni sulle altre implementazioni del provider di Windows PowerShell, vedere progettazione del provider di Windows PowerShell.For more information about other Windows PowerShell provider implementations, see Designing Your Windows PowerShell Provider.

Il provider di elementi di Windows PowerShell descritto in questo argomento recupera gli elementi di dati da un database di Access.The Windows PowerShell item provider described in this topic gets items of data from an Access database. In questo caso, un "elemento" è una tabella nel database di Access o una riga in una tabella.In this case, an "item" is either a table in the Access database or a row in a table.

Definizione della classe del provider di elementi di Windows PowerShellDefining the Windows PowerShell Item Provider Class

Un provider di elementi di Windows PowerShell deve definire una classe .NET che deriva dalla classe di base 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. Di seguito è riportata la definizione della classe per il provider di elementi descritto in questa sezione.The following is the class definition for the item provider described in this section.

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

public class AccessDBProvider : ItemCmdletProvider

Si noti che in questa definizione di classe l'attributo System. Management. Automation. provider. CmdletProviderAttribute include due parametri.Note that in this class definition, the System.Management.Automation.Provider.Cmdletproviderattribute attribute includes two parameters. Il primo parametro specifica un nome descrittivo per il provider utilizzato da Windows PowerShell.The first parameter specifies a user-friendly name for the provider that is used by Windows PowerShell. Il secondo parametro specifica le funzionalità specifiche di Windows PowerShell che il provider espone al runtime di Windows PowerShell durante l'elaborazione del comando.The second parameter specifies the Windows PowerShell specific capabilities that the provider exposes to the Windows PowerShell runtime during command processing. Per questo provider non sono state aggiunte funzionalità specifiche di Windows PowerShell.For this provider, there are no added Windows PowerShell specific capabilities.

Definizione della funzionalità di baseDefining Base Functionality

Come descritto in progettazione del provider di Windows PowerShell, la classe System. Management. Automation. provider. Drivecmdletprovider deriva da diverse altre classi che forniscono funzionalità diverse del provider.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. Un provider di elementi di Windows PowerShell deve quindi definire tutte le funzionalità fornite da tali classi.A Windows PowerShell item provider, therefore, must define all of the functionality provided by those classes.

Per ulteriori informazioni su come implementare la funzionalità per l'aggiunta di informazioni di inizializzazione specifiche della sessione e per il rilascio di risorse utilizzate dal provider, vedere creazione di un provider di Windows PowerShell di base.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. Tuttavia, la maggior parte dei provider, incluso il provider qui descritto, può utilizzare l'implementazione predefinita di questa funzionalità fornita da Windows PowerShell.However, most providers, including the provider described here, can use the default implementation of this functionality that is provided by Windows PowerShell.

Prima che il provider di elementi di Windows PowerShell possa modificare gli elementi nell'archivio, deve implementare i metodi della classe di base System. Management. Automation. provider. Drivecmdletprovider per accedere all'archivio dati.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. Per ulteriori informazioni sull'implementazione di questa classe, vedere creazione di un provider di unità di Windows PowerShell.For more information about implementing this class, see Creating a Windows PowerShell Drive Provider.

Verifica della validità del percorsoChecking for Path Validity

Quando si cerca un elemento di dati, il runtime di Windows PowerShell fornisce un percorso di Windows PowerShell al provider, come definito nella sezione "concetti di PSPath" del funzionamento di 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. Un provider di elementi di Windows PowerShell deve verificare la validità sintattica e semantica di qualsiasi percorso passato implementando il metodo 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. Questo metodo restituisce true se il percorso è valido e false in caso contrario.This method returns true if the path is valid, and false otherwise. Tenere presente che l'implementazione di questo metodo non deve verificare l'esistenza dell'elemento nel percorso, ma solo che il percorso sia sintatticamente e semanticamente corretto.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.

Di seguito è illustrata l'implementazione del metodo System. Management. Automation. provider. Itemcmdletprovider. IsValidPath * per questo provider.Here is the implementation of the System.Management.Automation.Provider.Itemcmdletprovider.Isvalidpath* method for this provider. Si noti che questa implementazione chiama un metodo helper NormalizePath per convertire tutti i separatori del percorso in uno uniforme.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

Determinare se esiste un elementoDetermining if an Item Exists

Dopo aver verificato il percorso, il runtime di Windows PowerShell deve determinare se esiste un elemento di dati in tale percorso.After verifying the path, the Windows PowerShell runtime must determine if an item of data exists at that path. Per supportare questo tipo di query, il provider di elementi di Windows PowerShell implementa il metodo 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. Questo metodo restituisce true un elemento trovato nel percorso specificato e false (impostazione predefinita) in caso contrario.This method returns true an item is found at the specified path and false (default) otherwise.

Di seguito è illustrata l'implementazione del metodo System. Management. Automation. provider. Itemcmdletprovider. itemExists * per questo provider.Here is the implementation of the System.Management.Automation.Provider.Itemcmdletprovider.Itemexists* method for this provider. Si noti che questo metodo chiama i metodi helper PathIsDrive, ChunkPath e GetTable e usa un oggetto DatabaseTableInfo definito dal provider.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

Aspetti da ricordare sull'implementazione di ItemExistsThings to Remember About Implementing ItemExists

Per l'implementazione di System. Management. Automation. provider. Itemcmdletprovider. itemExists *è possibile che si verifichino le condizioni seguenti:The following conditions may apply to your implementation of System.Management.Automation.Provider.Itemcmdletprovider.Itemexists*:

Associazione di parametri dinamici al cmdlet Test-PathAttaching Dynamic Parameters to the Test-Path Cmdlet

A volte il Test-Path cmdlet che chiama System. Management. Automation. provider. Itemcmdletprovider. itemExists * richiede parametri aggiuntivi specificati dinamicamente in fase di esecuzione.Sometimes the Test-Path cmdlet that calls System.Management.Automation.Provider.Itemcmdletprovider.Itemexists* requires additional parameters that are specified dynamically at runtime. Per fornire questi parametri dinamici, il provider di elementi di Windows PowerShell deve implementare il metodo 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. Questo metodo recupera i parametri dinamici per l'elemento in corrispondenza del percorso indicato e restituisce un oggetto con proprietà e campi con attributi di analisi simili a una classe di cmdlet o a un oggetto 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. Il runtime di Windows PowerShell usa l'oggetto restituito per aggiungere i parametri al Test-Path cmdlet.The Windows PowerShell runtime uses the returned object to add the parameters to the Test-Path cmdlet.

Questo provider di elementi di Windows PowerShell non implementa questo metodo.This Windows PowerShell item provider does not implement this method. Tuttavia, il codice seguente è l'implementazione predefinita di questo metodo.However, the following code is the default implementation of this method.

Recupero di un elementoRetrieving an Item

Per recuperare un elemento, il provider di elementi di Windows PowerShell deve eseguire l'override del metodo System. Management. Automation. provider. Itemcmdletprovider. GetItem * per supportare le chiamate dal Get-Item 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. Questo metodo scrive l'elemento usando il metodo System. Management. Automation. provider. CmdletProvider. Writeitemobject * .This method writes the item using the System.Management.Automation.Provider.Cmdletprovider.Writeitemobject* method.

Di seguito è illustrata l'implementazione del metodo System. Management. Automation. provider. Itemcmdletprovider. GetItem * per questo provider.Here is the implementation of the System.Management.Automation.Provider.Itemcmdletprovider.Getitem* method for this provider. Si noti che questo metodo usa i metodi helper GetTable e GetRow per recuperare elementi che sono tabelle nel database di Access o righe in una tabella di dati.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

Aspetti da ricordare sull'implementazione di GetItemThings to Remember About Implementing GetItem

Le condizioni seguenti possono essere valide per un'implementazione di System. Management. Automation. provider. Itemcmdletprovider. GetItem *:The following conditions may apply to an implementation of System.Management.Automation.Provider.Itemcmdletprovider.Getitem*:

Associazione di parametri dinamici al cmdlet Get-ItemAttaching Dynamic Parameters to the Get-Item Cmdlet

A volte il Get-Item cmdlet richiede parametri aggiuntivi che vengono specificati dinamicamente in fase di esecuzione.Sometimes the Get-Item cmdlet requires additional parameters that are specified dynamically at runtime. Per fornire questi parametri dinamici, il provider di elementi di Windows PowerShell deve implementare il metodo 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. Questo metodo recupera i parametri dinamici per l'elemento in corrispondenza del percorso indicato e restituisce un oggetto con proprietà e campi con attributi di analisi simili a una classe di cmdlet o a un oggetto 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. Il runtime di Windows PowerShell usa l'oggetto restituito per aggiungere i parametri al Get-Item cmdlet.The Windows PowerShell runtime uses the returned object to add the parameters to the Get-Item cmdlet.

Questo provider non implementa questo metodo.This provider does not implement this method. Tuttavia, il codice seguente è l'implementazione predefinita di questo metodo.However, the following code is the default implementation of this method.

Impostazione di un elementoSetting an Item

Per impostare un elemento, il provider di elementi di Windows PowerShell deve eseguire l'override del metodo System. Management. Automation. provider. Itemcmdletprovider. SetItem * per supportare le chiamate dal Set-Item 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. Questo metodo imposta il valore dell'elemento in corrispondenza del percorso specificato.This method sets the value of the item at the specified path.

Questo provider non fornisce un override per il metodo System. Management. Automation. provider. Itemcmdletprovider. SetItem * .This provider does not provide an override for the System.Management.Automation.Provider.Itemcmdletprovider.Setitem* method. Tuttavia, di seguito è riportata l'implementazione predefinita di questo metodo.However, the following is the default implementation of this method.

Aspetti da ricordare sull'implementazione di SetItemThings to Remember About Implementing SetItem

Le condizioni seguenti possono essere valide per l'implementazione di System. Management. Automation. provider. Itemcmdletprovider. SetItem *:The following conditions may apply to your implementation of System.Management.Automation.Provider.Itemcmdletprovider.Setitem*:

Recupero di parametri dinamici per SetItemRetrieving Dynamic Parameters for SetItem

A volte il Set-Item cmdlet richiede parametri aggiuntivi che vengono specificati dinamicamente in fase di esecuzione.Sometimes the Set-Item cmdlet requires additional parameters that are specified dynamically at runtime. Per fornire questi parametri dinamici, il provider di elementi di Windows PowerShell deve implementare il metodo 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. Questo metodo recupera i parametri dinamici per l'elemento in corrispondenza del percorso indicato e restituisce un oggetto con proprietà e campi con attributi di analisi simili a una classe di cmdlet o a un oggetto 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. Il runtime di Windows PowerShell usa l'oggetto restituito per aggiungere i parametri al Set-Item cmdlet.The Windows PowerShell runtime uses the returned object to add the parameters to the Set-Item cmdlet.

Questo provider non implementa questo metodo.This provider does not implement this method. Tuttavia, il codice seguente è l'implementazione predefinita di questo metodo.However, the following code is the default implementation of this method.

Cancellazione di un elementoClearing an Item

Per cancellare un elemento, il provider di elementi di Windows PowerShell implementa il metodo System. Management. Automation. provider. Itemcmdletprovider. ClearItem * per supportare le chiamate dal Clear-Item 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. Questo metodo cancella l'elemento dati nel percorso specificato.This method erases the data item at the specified path.

Questo provider non implementa questo metodo.This provider does not implement this method. Tuttavia, il codice seguente è l'implementazione predefinita di questo metodo.However, the following code is the default implementation of this method.

Aspetti da ricordare sull'implementazione di ClearItemThings to Remember About Implementing ClearItem

Le condizioni seguenti possono essere valide per un'implementazione di System. Management. Automation. provider. Itemcmdletprovider. ClearItem *:The following conditions may apply to an implementation of System.Management.Automation.Provider.Itemcmdletprovider.Clearitem*:

Recuperare i parametri dinamici per ClearItemRetrieve Dynamic Parameters for ClearItem

A volte il Clear-Item cmdlet richiede parametri aggiuntivi che vengono specificati dinamicamente in fase di esecuzione.Sometimes the Clear-Item cmdlet requires additional parameters that are specified dynamically at runtime. Per fornire questi parametri dinamici, il provider di elementi di Windows PowerShell deve implementare il metodo 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. Questo metodo recupera i parametri dinamici per l'elemento in corrispondenza del percorso indicato e restituisce un oggetto con proprietà e campi con attributi di analisi simili a una classe di cmdlet o a un oggetto 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. Il runtime di Windows PowerShell usa l'oggetto restituito per aggiungere i parametri al Clear-Item cmdlet.The Windows PowerShell runtime uses the returned object to add the parameters to the Clear-Item cmdlet.

Questo provider di elementi non implementa questo metodo.This item provider does not implement this method. Tuttavia, il codice seguente è l'implementazione predefinita di questo metodo.However, the following code is the default implementation of this method.

Esecuzione di un'azione predefinita per un elementoPerforming a Default Action for an Item

Un provider di elementi di Windows PowerShell può implementare il metodo System. Management. Automation. provider. Itemcmdletprovider. Invokedefaultaction * per supportare le chiamate dal Invoke-Item cmdlet, che consente al provider di eseguire un'azione predefinita per l'elemento nel percorso specificato.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. Ad esempio, il provider FileSystem può utilizzare questo metodo per chiamare ShellExecute per un elemento specifico.For example, the FileSystem provider might use this method to call ShellExecute for a specific item.

Questo provider non implementa questo metodo.This provider does not implement this method. Tuttavia, il codice seguente è l'implementazione predefinita di questo metodo.However, the following code is the default implementation of this method.

Aspetti da ricordare sull'implementazione di InvokeDefaultActionThings to Remember About Implementing InvokeDefaultAction

Le condizioni seguenti possono essere valide per un'implementazione di System. Management. Automation. provider. Itemcmdletprovider. Invokedefaultaction *:The following conditions may apply to an implementation of System.Management.Automation.Provider.Itemcmdletprovider.Invokedefaultaction*:

Recuperare i parametri dinamici per InvokeDefaultActionRetrieve Dynamic Parameters for InvokeDefaultAction

A volte il Invoke-Item cmdlet richiede parametri aggiuntivi che vengono specificati dinamicamente in fase di esecuzione.Sometimes the Invoke-Item cmdlet requires additional parameters that are specified dynamically at runtime. Per fornire questi parametri dinamici, il provider di elementi di Windows PowerShell deve implementare il metodo 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. Questo metodo recupera i parametri dinamici per l'elemento in corrispondenza del percorso indicato e restituisce un oggetto con proprietà e campi con attributi di analisi simili a una classe di cmdlet o a un oggetto 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. Il runtime di Windows PowerShell usa l'oggetto restituito per aggiungere i parametri dinamici al Invoke-Item cmdlet.The Windows PowerShell runtime uses the returned object to add the dynamic parameters to the Invoke-Item cmdlet.

Questo provider di elementi non implementa questo metodo.This item provider does not implement this method. Tuttavia, il codice seguente è l'implementazione predefinita di questo metodo.However, the following code is the default implementation of this method.

Implementazione di metodi e classi helperImplementing Helper Methods and Classes

Questo provider di elementi implementa diversi metodi e classi helper usati dai metodi di override pubblici definiti da Windows PowerShell.This item provider implements several helper methods and classes that are used by the public override methods defined by Windows PowerShell. Il codice per questi metodi e classi helper è illustrato nella sezione di esempio di codice .The code for these helper methods and classes are shown in the Code Sample section.

Metodo NormalizePathNormalizePath Method

Questo provider di elementi implementa un metodo helper NormalizePath per verificare che il percorso abbia un formato coerente.This item provider implements a NormalizePath helper method to ensure that the path has a consistent format. Il formato specificato usa una barra rovesciata ( \ ) come separatore.The format specified uses a backslash (\) as a separator.

Metodo PathIsDrivePathIsDrive Method

Questo provider di elementi implementa un metodo helper PathIsDrive per determinare se il percorso specificato è effettivamente il nome dell'unità.This item provider implements a PathIsDrive helper method to determine if the specified path is actually the drive name.

Metodo ChunkPathChunkPath Method

Questo provider di elementi implementa un metodo helper ChunkPath che suddivide il percorso specificato in modo che il provider possa identificare i singoli elementi.This item provider implements a ChunkPath helper method that breaks up the specified path so that the provider can identify its individual elements. Restituisce una matrice composta dagli elementi Path.It returns an array composed of the path elements.

GetTable (metodo)GetTable Method

Questo provider di elementi implementa il metodo helper getTables che restituisce un oggetto DatabaseTableInfo che rappresenta le informazioni sulla tabella specificata nella chiamata.This item provider implements the GetTables helper method that returns a DatabaseTableInfo object that represents information about the table specified in the call.

Metodo GetRowGetRow Method

Il metodo System. Management. Automation. provider. Itemcmdletprovider. GetItem * di questo provider di elementi chiama il metodo helper GetRows.The System.Management.Automation.Provider.Itemcmdletprovider.Getitem* method of this item provider calls the GetRows helper method. Questo metodo helper recupera un oggetto DatabaseRowInfo che rappresenta le informazioni sulla riga specificata nella tabella.This helper method retrieves a DatabaseRowInfo object that represents information about the specified row in the table.

Classe DatabaseTableInfoDatabaseTableInfo Class

Questo provider di elementi definisce una classe DatabaseTableInfo che rappresenta una raccolta di informazioni in una tabella di dati del database.This item provider defines a DatabaseTableInfo class that represents a collection of information in a data table in the database. Questa classe è simile alla classe System. io. DirectoryInfo .This class is similar to the System.IO.Directoryinfo class.

Il provider di elementi di esempio definisce un metodo DatabaseTableInfo. getTables che restituisce una raccolta di oggetti informazioni tabella che definiscono le tabelle nel database.The sample item provider defines a DatabaseTableInfo.GetTables method that returns a collection of table information objects defining the tables in the database. Questo metodo include un blocco try/catch per assicurarsi che qualsiasi errore del database venga visualizzato come una riga con zero voci.This method includes a try/catch block to ensure that any database error shows up as a row with zero entries.

Classe DatabaseRowInfoDatabaseRowInfo Class

Questo provider di elementi definisce la classe helper DatabaseRowInfo che rappresenta una riga in una tabella del database.This item provider defines the DatabaseRowInfo helper class that represents a row in a table of the database. Questa classe è simile alla classe System. io. FileInfo .This class is similar to the System.IO.FileInfo class.

Il provider di esempio definisce un metodo DatabaseRowInfo. GetRows per restituire una raccolta di oggetti informazioni sulla riga per la tabella specificata.The sample provider defines a DatabaseRowInfo.GetRows method to return a collection of row information objects for the specified table. Questo metodo include un blocco try/catch per intercettare le eccezioni.This method includes a try/catch block to trap exceptions. Eventuali errori non comporteranno alcuna informazione sulle righe.Any errors will result in no row information.

Codice di esempioCode Sample

Per il codice di esempio completo, vedere esempio di codice AccessDbProviderSample03.For complete sample code, see AccessDbProviderSample03 Code Sample.

Definizione di tipi di oggetti e formattazioneDefining Object Types and Formatting

Quando si scrive un provider, potrebbe essere necessario aggiungere membri a oggetti esistenti o definire nuovi oggetti.When writing a provider, it may be necessary to add members to existing objects or define new objects. Al termine, creare un file di tipi che Windows PowerShell può usare per identificare i membri dell'oggetto e un file di formato che definisce la modalità di visualizzazione dell'oggetto.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. Per ulteriori informazioni su, vedere estensione di tipi di oggetti e formattazione.For more information about , see Extending Object Types and Formatting.

Compilazione del provider di Windows PowerShellBuilding the Windows PowerShell provider

Vedere come registrare i cmdlet, i provider e le applicazioni host.See How to Register Cmdlets, Providers, and Host Applications.

Test del provider di Windows PowerShellTesting the Windows PowerShell provider

Quando questo provider di elementi di Windows PowerShell viene registrato con Windows PowerShell, è possibile testare solo le funzionalità di base e di unità del provider.When this Windows PowerShell item provider is registered with Windows PowerShell, you can only test the basic and drive functionality of the provider. Per testare la manipolazione degli elementi, è necessario implementare anche la funzionalità del contenitore descritta in implementazione di un provider di Windows PowerShell per contenitori.To test the manipulation of items, you must also implement container functionality described in Implementing a Container Windows PowerShell Provider.

Vedere ancheSee Also

Windows PowerShell SDKWindows PowerShell SDK

Manuale del programmatore di Windows PowerShellWindows PowerShell Programmer's Guide

Creazione di provider di Windows PowerShellCreating Windows PowerShell Providers

Progettazione del provider di Windows PowerShellDesigning Your Windows PowerShell provider

Estensione di tipi di oggetti e formattazioneExtending Object Types and Formatting

Funzionamento di Windows PowerShellHow Windows PowerShell Works

Creazione di un provider di Windows PowerShell per contenitoriCreating a Container Windows PowerShell provider

Creazione di un provider di Windows PowerShell per unitàCreating a Drive Windows PowerShell provider

Come registrare cmdlet, provider e applicazioni hostHow to Register Cmdlets, Providers, and Host Applications