Tipi di provider

I provider definiscono le funzionalità di base modificando il modo in cui i cmdlet del provider, forniti da PowerShell, eseguono le azioni. Ad esempio, i provider possono usare la funzionalità predefinita del cmdlet o modificare il funzionamento del cmdlet durante il recupero di elementi Get-Item dall'archivio dati. La funzionalità del provider descritta in questo documento include funzionalità definite sovrascrivendo metodi da interfacce e classi di base del provider specifiche.

Nota

Per le funzionalità del provider predefinite da PowerShell, vedere Funzionalità del provider.

Provider abilitati per le unità

I provider abilitati per le unità specificano le unità predefinite disponibili per l'utente e consentono all'utente di aggiungere o rimuovere unità. Nella maggior parte dei casi, i provider sono provider abilitati per le unità perché richiedono un'unità predefinita per accedere all'archivio dati. Tuttavia, quando si scrive un provider personalizzato, è possibile o meno consentire all'utente di creare e rimuovere unità.

Per creare un provider abilitato per le unità, la classe del provider deve derivare dalla classe System.Management.Automation.Provider.DriveCmdletProvider o da un'altra classe che deriva da tale classe. La classe DriveCmdletProvider definisce i metodi seguenti per implementare le unità predefinite del provider e supportare New-PSDrive i cmdlet e Remove-PSDrive . Nella maggior parte dei casi, per supportare un cmdlet del provider è necessario sovrascrivere il metodo chiamato dal motore di PowerShell per richiamare il cmdlet, ad esempio il metodo per il cmdlet, e facoltativamente è possibile sovrascrivere un secondo metodo, ad esempio , per aggiungere parametri dinamici al NewDrive New-PSDrive NewDriveDynamicParameters cmdlet.

  • Il metodo InitializeDefaultDrives definisce le unità predefinite disponibili all'utente ogni volta che viene usato il provider.

  • I metodi NewDrive e NewDriveDynamicParameters definiscono il modo in cui il provider supporta il New-PSDrive cmdlet del provider. Questo cmdlet consente all'utente di creare unità per accedere all'archivio dati.

  • Il metodo RemoveDrive definisce il modo in cui il provider supporta il Remove-PSDrive cmdlet del provider. Questo cmdlet consente all'utente di rimuovere le unità dall'archivio dati.

Provider abilitati per gli elementi

I provider abilitati per gli elementi consentono all'utente di ottenere, impostare o cancellare gli elementi nell'archivio dati. Un "elemento" è un elemento dell'archivio dati a cui l'utente può accedere o gestire in modo indipendente. Per creare un provider abilitato per gli elementi, la classe del provider deve derivare dalla classe System.Management.Automation.Provider.ItemCmdletProvider o da un'altra classe che deriva da tale classe.

La classe ItemCmdletProvider definisce i metodi seguenti per l'implementazione di cmdlet del provider specifici. Nella maggior parte dei casi, per supportare un cmdlet del provider è necessario sovrascrivere il metodo chiamato dal motore di PowerShell per richiamare il cmdlet, ad esempio il metodo per il cmdlet, e facoltativamente è possibile sovrascrivere un secondo metodo, ad esempio , per aggiungere parametri dinamici al ClearItem Clear-Item ClearItemDynamicParameters cmdlet.

Oltre ai metodi usati per implementare i cmdlet del provider, la classe ItemCmdletProvider definisce anche i metodi seguenti:

  • Il metodo ExpandPath consente all'utente di usare caratteri jolly quando si specifica il percorso del provider.

  • IsValidPath viene usato per determinare se un percorso è sintatticamente e semanticamente valido per il provider.

Provider abilitati per i contenitori

I provider abilitati per i contenitori consentono all'utente di gestire gli elementi che sono contenitori. Un contenitore è un gruppo di elementi figlio all'interno di un elemento padre comune. Per creare un provider abilitato per i contenitori, la classe del provider deve derivare dalla classe System.Management.Automation.Provider.ContainerCmdletProvider o da un'altra classe che deriva da tale classe.

Importante

I provider abilitati per i contenitori non possono accedere agli archivi dati che contengono contenitori annidati. Se un elemento figlio di un contenitore è un altro contenitore, è necessario implementare un provider abilitato per la navigazione.

La classe ContainerCmdletProvider definisce i metodi seguenti per l'implementazione di cmdlet del provider specifici. Nella maggior parte dei casi, per supportare un cmdlet del provider è necessario sovrascrivere il metodo chiamato dal motore di PowerShell per richiamare il cmdlet, ad esempio il metodo per il cmdlet, e facoltativamente è possibile sovrascrivere un secondo metodo, ad esempio , per aggiungere parametri dinamici al CopyItem Copy-Item CopyItemDynamicParameters cmdlet.

Oltre ai metodi usati per implementare i cmdlet del provider, la classe ContainerCmdletProvider definisce anche i metodi seguenti:

  • Il metodo HasChildItems può essere usato dalla classe del provider per determinare se un elemento dispone di elementi figlio.

  • Il metodo ConvertPath può essere usato dalla classe del provider per creare un nuovo percorso specifico del provider da un percorso specificato.

I provider abilitati per la navigazione consentono all'utente di spostare elementi nell'archivio dati. Per creare un provider abilitato per la navigazione, la classe del provider deve derivare dalla classe System.Management.Automation.Provider.NavigationCmdletProvider.

La classe NavigationCmdletProvider definisce i metodi seguenti per l'implementazione di cmdlet del provider specifici. Nella maggior parte dei casi, per supportare un cmdlet del provider è necessario sovrascrivere il metodo chiamato dal motore di PowerShell per richiamare il cmdlet, ad esempio il metodo per il cmdlet, e facoltativamente è possibile sovrascrivere un secondo metodo, ad esempio , per aggiungere parametri dinamici al MoveItem Move-Item MoveItemDynamicParameters cmdlet.

  • I metodi MoveItem e MoveItemDynamicParameters definiscono il modo in cui il provider supporta il Move-Item cmdlet del provider. Questo cmdlet consente all'utente di spostare un elemento da una posizione nell'archivio a un'altra.

  • Il metodo MakePath definisce il modo in cui il provider supporta il Join-Path cmdlet del provider. Questo cmdlet consente all'utente di combinare un segmento di percorso padre e figlio per creare un percorso interno del provider.

Oltre ai metodi usati per implementare i cmdlet del provider, la classe NavigationCmdletProvider definisce anche i metodi seguenti:

Provider abilitati per il contenuto

I provider abilitati per il contenuto consentono all'utente di cancellare, ottenere o impostare il contenuto degli elementi in un archivio dati. Ad esempio, il provider FileSystem consente di cancellare, ottenere e impostare il contenuto dei file nel file system. Per creare un provider abilitato per il contenuto, la classe del provider deve implementare i metodi dell'interfaccia System.Management.Automation.Provider.IContentCmdletProvider.

L'interfaccia IContentCmdletProvider definisce i metodi seguenti per l'implementazione di cmdlet del provider specifici. Nella maggior parte dei casi, per supportare un cmdlet del provider è necessario sovrascrivere il metodo chiamato dal motore di PowerShell per richiamare il cmdlet, ad esempio il metodo per il cmdlet, e facoltativamente è possibile sovrascrivere un secondo metodo, ad esempio , per aggiungere parametri dinamici al ClearContent Clear-Content ClearContentDynamicParameters cmdlet.

Provider abilitati per le proprietà

I provider abilitati per le proprietà consentono all'utente di gestire le proprietà degli elementi nell'archivio dati. Per creare un provider abilitato per le proprietà, la classe del provider deve implementare i metodi delle interfacce System.Management.Automation.Provider.IPropertyCmdletProvider e System.Management.Automation.Provider.IDynamicPropertyCmdletProvider. Nella maggior parte dei casi, per supportare un cmdlet del provider è necessario sovrascrivere il metodo chiamato dal motore di PowerShell per richiamare il cmdlet, ad esempio il metodo per il cmdlet Clear-Property. Facoltativamente, è possibile sovrascrivere un secondo metodo, ad esempio , per aggiungere parametri dinamici ClearProperty ClearPropertyDynamicParameters al cmdlet.

L'interfaccia IPropertyCmdletProvider definisce i metodi seguenti per l'implementazione di cmdlet del provider specifici:

L'interfaccia IDynamicPropertyCmdletProvider definisce i metodi seguenti per l'implementazione di cmdlet del provider specifici:

Vedi anche

about_Providers

Scrittura di un provider di Windows PowerShell