Panoramica del provider di Windows PowerShell

Un provider Windows PowerShell consente di esporre qualsiasi archivio dati come file system come se fosse un'unità montata. Ad esempio, il provider del Registro di sistema predefinito consente di spostarsi nel Registro di sistema come se si spostasse c l'unità del computer. Un provider può anche eseguire l'override dei cmdlet , ad esempio , e così via, in modo che i dati nell'archivio dati possano essere trattati come file e directory quando si esplora un Item Get-Item Set-Item file system. Per altre informazioni su provider e unità e sui provider predefiniti in Windows PowerShell, vedere about_Providers.

Provider e unità

Un provider definisce la logica usata per accedere, esplorare e modificare un archivio dati, mentre un'unità specifica un punto di ingresso specifico per un archivio dati (o una parte di un archivio dati) del tipo definito dal provider. Ad esempio, il provider del Registro di sistema consente di accedere a hive e chiavi in un Registro di sistema e le unità HKLM e HKCU specificano gli hive corrispondenti all'interno del Registro di sistema. Entrambe le unità HKLM e HKCU usano il provider del Registro di sistema.

Quando si scrive un provider, è possibile specificare unità-unità predefinite che vengono create automaticamente quando il provider è disponibile. Si definisce anche un metodo per creare nuove unità che usano tale provider.

Tipo di provider

Esistono diversi tipi di provider, ognuno dei quali offre un livello di funzionalità diverso. Un provider viene implementato come classe che deriva da uno dei discendenti della classe System.Management.Automation.SessionStateCategory CmdletProvider. Per informazioni sui diversi tipi di provider, vedere Tipi di provider.

Cmdlet del provider

I provider possono implementare metodi che corrispondono ai cmdlet, creando comportamenti personalizzati per tali cmdlet quando vengono usati in un'unità per tale provider. A seconda del tipo di provider, sono disponibili diversi set di cmdlet. Per un elenco completo dei cmdlet disponibili per la personalizzazione nei provider, vedere Cmdlet del provider.

Percorsi dei provider

Gli utenti esplorano le unità del provider come i file system. Per questo scopo, si prevede che la sintassi dei percorsi corrisponda ai percorsi usati file system navigazione. Quando un utente esegue un cmdlet del provider, specifica un percorso dell'elemento a cui accedere. Il percorso specificato può essere interpretato in diversi modi. Un provider deve supportare uno o più dei tipi di percorso seguenti.

Percorsi qualificati dall'unità

Un percorso qualificato dall'unità è una combinazione del nome dell'elemento, del contenitore e dei sottocontenitori in cui si trova l'elemento e dell'unità Windows PowerShell tramite cui si accede all'elemento. Le unità sono definite dal provider usato per accedere all'archivio dati. Questo percorso inizia con il nome dell'unità seguito da due punti (:). ad esempio get-childitem C:

Percorsi qualificati dal provider

Per consentire al motore Windows PowerShell di inizializzare e annullare l'inizializzazione del provider, il provider deve supportare un percorso qualificato dal provider. Ad esempio, l'utente può inizializzare e annullare l'inizializzazione del provider FileSystem perché definisce il percorso completo del provider seguente: FileSystem::\\uncshare\abc\bar .

Percorsi diretti del provider

Per consentire l'accesso remoto al provider Windows PowerShell, deve supportare un percorso diretto del provider da passare direttamente al provider Windows PowerShell per il percorso corrente. Ad esempio, il provider Windows PowerShell registro può usare \\server\regkeypath come percorso diretto del provider.

Percorsi interni del provider

Per consentire al cmdlet del provider di accedere ai dati usando API (Application Programming Interface) non Windows PowerShell), il provider Windows PowerShell deve supportare un percorso interno del provider. Questo percorso è indicato dopo "::" nel percorso completo del provider. Ad esempio, il percorso interno del provider per il file system Windows PowerShell provider è \\uncshare\abc\bar .

Override dei parametri dei cmdlet

Il comportamento di alcuni cmdlet specifici del provider può essere sostituito da un provider. Per un elenco dei parametri di cui è possibile eseguire l'override e per informazioni su come eseguirne l'override nella classe del provider, vedere Parametri dei cmdlet del provider

Parametri dinamici

I provider possono definire parametri dinamici che vengono aggiunti a un cmdlet del provider quando l'utente specifica un determinato valore per uno dei parametri statici del cmdlet. Un provider esegue questa operazione implementando uno o più metodi di parametro dinamici. Per un elenco dei parametri dei cmdlet che possono essere usati per aggiungere parametri dinamici e dei metodi usati per implementarli, vedere Parametri dinamici dei cmdlet del provider.

Funzionalità del provider

L'enumerazione System.Management.Automation.Provider.Providercapabilities definisce una serie di funzionalità che i provider possono supportare. tra cui la possibilità di usare caratteri jolly, filtrare gli elementi e supportare le transazioni. Per specificare le funzionalità per un provider, aggiungere un elenco di valori dell'enumerazione System.Management.Automation.Provider.Providercapabilities, combinato con un'operazione logica, come proprietà OR System.Management.Automation.Provider.Cmdletproviderattribute.Providercapabilities* (secondo parametro dell'attributo) dell'attributo System.Management.Automation.Provider.Cmdletproviderattribute per la classe del provider. Ad esempio, l'attributo seguente specifica che il provider supporta le funzionalità ShouldProcess System.Management.Automation.Provider.Providercapabilities e System.Management.Automation.Provider.ProviderCapabilities Transactions.

[CmdletProvider(RegistryProvider.ProviderName, ProviderCapabilities.ShouldProcess | ProviderCapabilities.Transactions)]

Guida ai cmdlet del provider

Quando si scrive un provider, è possibile implementare la Guida per i cmdlet del provider supportati. È incluso un singolo argomento della Guida per ogni cmdlet del provider o più versioni di un argomento della Guida per i casi in cui il cmdlet del provider agisce in modo diverso in base all'uso di parametri dinamici. Per supportare la Guida specifica del provider, il provider deve implementare l'interfaccia System.Management.Automation.Provider.Icmdletprovidersupportshelp.

Il motore Windows PowerShell chiama il metodo System.Management.Automation.Provider.Icmdletprovidersupportshelp.Gethelpmaml* per visualizzare l'argomento della Guida per i cmdlet del provider. Il motore fornisce il nome del cmdlet specificato dall'utente durante l'esecuzione del cmdlet e Get-Help il percorso corrente dell'utente. Il percorso corrente è obbligatorio se il provider implementa versioni diverse dello stesso cmdlet del provider per unità diverse. Il metodo deve restituire una stringa contenente il codice XML per la Guida del cmdlet.

Il contenuto del file della Guida viene scritto usando PSMAML XML. Si tratta dello stesso SCHEMA XML usato per la scrittura del contenuto della Guida per i cmdlet autonomi. Aggiungere il contenuto della Guida del cmdlet personalizzato al file della Guida per il provider CmdletHelpPaths nell'elemento . Nell'esempio seguente viene illustrato l'elemento per un singolo cmdlet del provider e viene illustrato come specificare il nome del command cmdlet del provider specificato dal provider. Supporta

<CmdletHelpPaths>
  <command:command>
    <command:details>
      <command:name>ProviderCmdletName</command:name>
      <command:verb>Verb</command:verb>
      <command:noun>Noun</command:noun>
    <command:details>
  </command:command>
<CmdletHelpPath>

Vedere anche

Windows PowerShell Funzionalità del provider

Cmdlet del provider

Scrittura di un provider di Windows PowerShell