Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Dovresti implementare un provider PowerShell di Windows se il tuo prodotto o configurazione espone un insieme di dati memorizzati, come un database che l'utente vorrà navigare o navigare. Inoltre, se il tuo prodotto fornisce un container, anche se non è un container multilivello, ha senso implementare un provider PowerShell per Windows. Ad esempio, potresti voler implementare un provider di container PowerShell per Windows se il verbo cmdlet Copia, Muovi, Renomina, Nuovo o Rimuovi ha senso come operazione sul tuo prodotto o sui dati di configurazione.
I percorsi PowerShell di Windows identificano il tuo provider
L'runtime di Windows PowerShell utilizza i percorsi di Windows PowerShell per accedere al provider PowerShell appropriato. Quando un cmdlet specifica uno di questi percorsi, l'runtime sa quale fornitore utilizzare per accedere allo store dati associato. Questi percorsi includono percorsi qualificati per il motore, percorsi qualificati dal fornitore, percorsi diretti dal fornitore e percorsi interni al fornitore. Ogni provider Windows PowerShell deve supportare uno o più di questi percorsi.
Per maggiori informazioni sui percorsi PowerShell di Windows, vedi Come funziona Windows PowerShell.
Definire un percorso Drive-Qualified
Per consentire all'utente di accedere ai dati situati su un disco fisico, il tuo provider PowerShell di Windows deve supportare un percorso qualificato per il disco. Questo percorso inizia con il nome del disco seguito da due punti (:), ad esempio, mydrive:\abc\bar.
Definire un percorso Provider-Qualified
Per permettere al runtime di Windows PowerShell di inizializzare e disinizializzare il provider, il tuo provider Windows PowerShell deve supportare un percorso qualificato dal provider. Ad esempio, FileSystem::\uncshare\abc\bar è il percorso certificato dal provider per il provider FileSystem fornito da Windows PowerShell.
Definire un percorso Provider-Direct
Per consentire l'accesso remoto al tuo provider PowerShell di Windows, dovrebbe supportare un percorso diretto dal provider che passa direttamente al provider PowerShell di Windows per la posizione attuale. Ad esempio, il provider PowerShell di Windows del registro può usare \\server\regkeypath come percorso diretto al provider.
Definire un percorso Provider-Internal
Per permettere al cmdlet provider di accedere ai dati utilizzando interfacce di programmazione applicative (API) non PowerShell di Windows, il tuo provider PowerShell di Windows dovrebbe supportare un percorso interno al provider. Questo percorso è indicato dopo la "::" nel percorso qualificato dal fornitore. Ad esempio, il percorso interno provider per il provider PowerShell di Windows è \\uncshare\abc\bar.
Modifica dei dati memorizzati
Quando si sovrascrive metodi che modificano lo store dati sottostante, si chiama sempre il metodo System.Management.Automation.Provider.CmdletProvider.WriteItemObject* con la versione più up-to-data dell'elemento modificata da quel metodo. L'infrastruttura provider determina se l'oggetto elemento deve essere passato alla pipeline, ad esempio quando l'utente specifica il parametro -PassThru. Se recuperare l'elemento più up-to-date è un'operazione costosa (dal punto di vista delle prestazioni), puoi testare la proprietà Context.PassThru per determinare se è davvero necessario scrivere l'elemento risultante.
Scegli una classe base per il tuo fornitore
Windows PowerShell fornisce diverse classi base che puoi utilizzare per implementare il tuo provider PowerShell Windows. Quando progetti un fornitore, scegli la classe base, descritta in questa sezione, che si adatta meglio alle tue esigenze.
Ogni classe base provider Windows PowerShell rende disponibile un insieme di cmdlet. Questa sezione descrive i cmdlet, ma non ne descrive i parametri.
Utilizzando lo stato della sessione, il runtime di Windows PowerShell rende disponibili diversi cmdlet di posizione a determinati provider PowerShell di Windows, come i Get-Locationcmdlet , Set-Location, Pop-Location, e Push-Location i cmdlet. Puoi usare il Get-Help cmdlet per ottenere informazioni su questi cmdlet di posizione.
Classe base CmdletProvider
La classe System.Management.Automation.Provider.CmdletProvider definisce un provider base di PowerShell per Windows. Questa classe supporta la dichiarazione del provider e fornisce una serie di proprietà e metodi disponibili a tutti i provider PowerShell di Windows.
La classe viene invocata dal Get-PSProvider cmdlet per elencare tutti i fornitori disponibili per una sessione.
L'implementazione di questo cmdlet è fornita dallo stato della sessione.
Annotazioni
I provider PowerShell di Windows sono disponibili per tutti gli ambiti del linguaggio PowerShell di Windows.
DriveCmdletProvider Classe Base
La classe System.Management.Automation.Provider.DriveCmdletProvider definisce un provider di unità PowerShell per Windows che supporta operazioni per aggiungere nuovi dischi, rimuovere i dischi esistenti e inizializzare i dischi predefiniti. Ad esempio, il provider FileSystem fornito da Windows PowerShell inizializza i dischi per tutti i volumi montati, come hard disk e unità CD/DVD.
Questa classe deriva dalla classe base System.Management.Automation.Provider.CmdletProvider . La tabella seguente elenca i cmdlet esposti da questa classe. Oltre a quelli elencati, il Get-PSDrive cmdlet (esposto per stato della sessione) è un cmdlet correlato utilizzato per recuperare i dischi disponibili.
| Cmdlet | Definition |
|---|---|
New-PSDrive |
Crea un nuovo drive per la sessione e trasmette le informazioni del drive. |
Remove-PSDrive |
Rimuove un disco dalla sessione. |
ClasseBase ItemCmdletProvider
La classe System.Management.Automation.Provider.ItemCmdletProvider definisce un provider di oggetti PowerShell di Windows che esegue operazioni sui singoli elementi dello store dati, senza assumere alcuna capacità di contenitore o navigazione. Questa classe deriva dalla classe base System.Management.Automation.Provider.DriveCmdletProvider . La tabella seguente elenca i cmdlet esposti da questa classe.
| Cmdlet | Definition |
|---|---|
Clear-Item |
Cancella il contenuto attuale degli elementi nella posizione specificata e lo sostituisce con il valore "clear" specificato dal fornitore. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
Get-Item |
Recupera gli oggetti dalla posizione specificata e trasmette in streaming gli oggetti risultanti. |
Invoke-Item |
Invoca l'azione predefinita per l'oggetto nel percorso specificato. |
Set-Item |
Imposta un elemento nella posizione specificata con il valore indicato. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
Resolve-Path |
Risolve i jolly per un percorso PowerShell di Windows e trasmette le informazioni del percorso. |
Test-Path |
Testa il percorso specificato e restituisce true se esiste o false altro. Questo cmdlet è implementato per supportare il IsContainer parametro del metodo System.Management.Automation.Provider.CmdletProvider.WriteItemObject* . |
ContainerCmdletProvider Classe Base
La classe System.Management.Automation.Provider.ContainerCmdletProvider definisce un provider container Windows PowerShell che espone un container, per gli elementi di archiviazione dati, all'utente. Tieni presente che un provider di container PowerShell per Windows può essere utilizzato solo quando c'è un container (nessun container annidato) con elementi al suo interno. Se ci sono container annidati, allora devi implementare un provider di navigazione Windows PowerShell .
Questa classe deriva dalla classe base System.Management.Automation.Provider.ItemCmdletProvider . La tabella seguente definisce i cmdlet implementati da questa classe.
| Cmdlet | Definition |
|---|---|
Copy-Item |
Copia gli oggetti da una posizione all'altra. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
Get-ChildItem |
Recupera gli oggetti figli nella posizione specificata e li trasmette in streaming come oggetti. |
New-Item |
Crea nuovi elementi nella posizione specificata e trasmette l'oggetto risultante in streaming. |
Remove-Item |
Rimuove gli oggetti dalla posizione specificata. |
Rename-Item |
Rinomina un elemento nella posizione specificata. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
Classe base NavigationCmdletProvider
La classe System.Management.Automation.Provider.NavigationCmdletProvider definisce un provider di navigazione Windows PowerShell che esegue operazioni per elementi che utilizzano più di un container. Questa classe deriva dalla classe base System.Management.Automation.Provider.ContainerCmdletProvider . La tabella seguente elenca i cmdlet esposti da questa classe.
| Cmdlet | Definition |
|---|---|
Combine-Path |
Combina due percorsi in un unico percorso, utilizzando un delimitatore specifico per il provider tra i percorsi. Questo comandante trasmette le corde. |
Move-Item |
Sposta gli oggetti nella posizione specificata. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
Un cmdlet correlato è il cmdlet base di Parse-Path fornito da Windows PowerShell. Questo cmdlet può essere usato per analizzare un percorso PowerShell di Windows per supportare il Parent parametro. Trasmette la stringa di percorso genitore.
Seleziona le interfacce del provider per supportare
Oltre a derivare da una delle classi base di Windows PowerShell, il tuo provider PowerShell di Windows può supportare altre funzionalità derivando da una o più delle seguenti interfacce del provider. Questa sezione definisce queste interfacce e i cmdlet supportati da ciascuna. Non descrive i parametri per i cmdlet supportati dall'interfaccia. Le informazioni sui parametri dei cmdlet sono disponibili online utilizzando i Get-Command cmdlet e (e Get-Help cmdlet).
IContentCmdletProvider
L'interfaccia System.Management.Automation.Provider.IContentCmdletProvider definisce un fornitore di contenuti che esegue operazioni sul contenuto di un elemento di dati. La tabella seguente elenca i cmdlet esposti da questa interfaccia.
| Cmdlet | Definition |
|---|---|
Add-Content |
Aggiunge le lunghezze dei valori indicate al contenuto dell'elemento specificato. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
Clear-Content |
Imposta il contenuto dell'elemento specificato al valore "clear". Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
Get-Content |
Recupera il contenuto degli elementi specificati e trasmette in streaming gli oggetti risultanti. |
Set-Content |
Sostituisce il contenuto esistente con gli elementi specificati. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
IPropertyCmdletProvider
L'interfaccia System.Management.Automation.Provider.IPropertyCmdletProvider definisce una proprietà di Windows PowerShell provider che esegue operazioni sulle proprietà degli elementi nello store dati. La tabella seguente elenca i cmdlet esposti da questa interfaccia.
Annotazioni
Il parametro Path su questi cmdlet indica un percorso verso un elemento invece di identificare una proprietà.
| Cmdlet | Definition |
|---|---|
Clear-ItemProperty |
Imposta le proprietà degli elementi specificati al valore "clear". Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
Get-ItemProperty |
Recupera le proprietà dagli elementi specificati e trasmette gli oggetti risultanti. |
Set-ItemProperty |
Imposta le proprietà degli elementi specificati con i valori indicati. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
IDynamicPropertyCmdletProvider
L'interfaccia System.Management.Automation.Provider.IDynamicPropertyCmdletProvider , derivata da System.Management.Automation.Provider.IPropertyCmdletProvider, definisce un provider che specifica parametri dinamici per i suoi cmdlet supportati. Questo tipo di provider gestisce operazioni per le quali le proprietà possono essere definite a runtime, ad esempio una nuova operazione di proprietà. Tali operazioni non sono possibili su elementi con proprietà definite staticamente. La tabella seguente elenca i cmdlet esposti da questa interfaccia.
| Cmdlet | Definition |
|---|---|
Copy-ItemProperty |
Copia una proprietà dall'elemento specificato a un altro elemento. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
Move-ItemProperty |
Sposta una proprietà dall'elemento specificato a un altro elemento. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
New-ItemProperty |
Crea una proprietà sugli elementi specificati e trasmette gli oggetti risultanti. |
Remove-ItemProperty |
Rimuove una proprietà per gli elementi specificati. |
Rename-ItemProperty |
Rinomina una proprietà degli elementi specificati. Questo cmdlet non fa passare un oggetto di output attraverso la pipeline a meno che il suo PassThru parametro non sia specificato. |
ISecurityDescriptorCmdletProvider
L'interfaccia System.Management.Automation.Provider.ISecurityDescriptorCmdletProvider aggiunge funzionalità di descrizione di sicurezza a un provider. Questa interfaccia permette all'utente di ottenere e impostare informazioni sui descrittori di sicurezza per un elemento nel data store. La tabella seguente elenca i cmdlet esposti da questa interfaccia.
| Cmdlet | Definition |
|---|---|
Get-Acl |
Recupera le informazioni contenute in una lista di controllo degli accessi (ACL), che fa parte di un descrittore di sicurezza utilizzato per proteggere le risorse del sistema operativo, ad esempio un file o un oggetto. |
Set-Acl |
Imposta le informazioni per un ACL. Si presenta sotto forma di un'istanza di System.Security.AccessControl.ObjectSecurity sull'elemento o elementi designati per il percorso specificato. Questo cmdlet può impostare informazioni su file, chiavi e sottochiavi nel registro, o qualsiasi altro elemento del provider, se il provider PowerShell di Windows supporta l'impostazione delle informazioni di sicurezza. |
Vedere anche
Creazione di provider PowerShell per Windows