informazioni_sui_fornitori

Breve descrizione

Descrive in che modo i provider di PowerShell forniscono l'accesso ai dati e ai componenti che altrimenti non sarebbero facilmente accessibili dalla riga di comando. I dati vengono presentati in un formato coerente simile a un'unità di sistema dei file.

Descrizione lunga

I provider di PowerShell sono programmi .NET che consentono l'accesso a archivi dati specializzati per semplificare la visualizzazione e la gestione. I dati sono visualizzati in un'unità e si accede ai dati in un percorso come si farebbe su un'unità disco rigido. È possibile usare uno dei cmdlet predefiniti supportati dal provider per gestire i dati nell'unità del provider. È anche possibile usare cmdlet personalizzati progettati appositamente per i dati.

I provider possono anche aggiungere parametri dinamici ai cmdlet predefiniti. Questi parametri sono disponibili solo quando si usa il cmdlet con i dati del provider.

Provider predefiniti

PowerShell include un set di provider predefiniti che è possibile usare per accedere ai diversi tipi di archivi dati.

Fornitore Unità/e TipoDiOutput
Nome alternativo Alias: System.Management.Automation.AliasInfo
Certificato Certificazione Microsoft.PowerShell.Commands.X509StoreLocation
System.Security.Cryptography.X509Certificates.X509Certificate2
Ambiente Env: System.Collections.DictionaryEntry
File System C: (*) System.IO.FileInfo
System.IO.DirectoryInfo
Funzione Funzione: System.Management.Automation.FunctionInfo
Registro HKLM: HKCU: Microsoft.Win32.Chiave del registro
Variabile Variabile: System.Management.Automation.PSVariable
WSMan WSMan: Microsoft.WSMan.Management.WSManConfigContainerElement

(*) Le unità FileSystem variano a seconda del sistema.

È anche possibile creare provider di PowerShell personalizzati ed è possibile installare provider sviluppati da altri utenti. Per elencare i provider disponibili nella sessione, digitare:

Get-PSProvider

Annotazioni

I provider di certificato, registro di sistemae WSMan sono disponibili solo nella piattaforma Windows.

Installazione e rimozione di provider

I provider vengono in genere installati tramite moduli di PowerShell. L'importazione del modulo carica il provider nella sessione. Non è possibile disinstallare i provider predefiniti. È possibile disinstallare i provider caricati da altri moduli.

È possibile scaricare un provider dalla sessione corrente usando il cmdlet Remove-Module. Questo cmdlet non disinstalla il provider, ma rende il provider non disponibile nella sessione.

È anche possibile usare il cmdlet Remove-PSDrive per rimuovere qualsiasi unità dalla sessione corrente. Questi dati sull'unità non sono interessati, ma l'unità non è più disponibile in tale sessione.

Visualizzazione dei provider

Per visualizzare i provider di PowerShell nel computer, digitare:

Get-PSProvider

L'output elenca i provider predefiniti e i provider aggiunti alla sessione.

Cmdlet del provider

I cmdlet seguenti sono progettati per lavorare con i dati esposti da qualsiasi provider. È possibile usare gli stessi cmdlet nello stesso modo per gestire i diversi tipi di dati esposti dai provider. Dopo aver appreso come gestire i dati di un provider, è possibile usare le stesse procedure con i dati di qualsiasi provider.

Ad esempio, il cmdlet New-Item crea un nuovo elemento. Nell'unità C: supportata dal provider FileSystem , è possibile utilizzare New-Item per creare un nuovo file o una nuova cartella. Nelle unità supportate dal provider di del Registro di sistema è possibile usare New-Item per creare una nuova chiave del Registro di sistema. Nell'unità Alias: è possibile usare New-Item per creare un nuovo alias.

Per informazioni dettagliate su uno dei cmdlet seguenti, digitare:

Get-Help <cmdlet-name> -Detailed

Cmdlet di ChildItem

Cmdlet di contenuto

Cmdlet dell'elemento

Cmdlet di ItemProperty

Cmdlet di localizzazione

Cmdlet di percorso

Cmdlet di PSDrive

Cmdlet PSProvider

Visualizzazione dei dati del provider

Il vantaggio principale di un provider è che espone i dati in modo familiare e coerente. Il modello per la presentazione dei dati è un'unità file system.

Il provider consente di visualizzare, esplorare e modificare gli elementi nell'archivio dati come se fossero dati in un file system. L'archivio dati è accessibile dal nome dell'unità supportata.

L'unità è elencata nella visualizzazione predefinita del cmdlet Get-PSProvider, ma è possibile ottenere informazioni sull'unità del provider usando il cmdlet Get-PSDrive. Ad esempio, per ottenere tutte le proprietà dell'unità Function: digitare:

Get-PSDrive Function | Format-List *

È possibile visualizzare e spostare i dati in un'unità del provider esattamente come si farebbe in un'unità file system.

Per visualizzare il contenuto di un'unità del provider, usare i cmdlet Get-Item o Get-ChildItem. Digitare il nome dell'unità seguito da due punti (:). Ad esempio, per visualizzare il contenuto dell'unità Alias:, digitare:

Get-Item alias:

È possibile visualizzare e gestire i dati in qualsiasi unità da un'altra unità includendo il nome dell'unità nel percorso. Ad esempio, per visualizzare la chiave del Registro di sistema HKLM\Software nell'unità HKLM: da un'altra unità, digitare:

Get-ChildItem HKLM:\SOFTWARE\

Per aprire l'unità, usare il cmdlet Set-Location. Tenere presente i due punti quando si specifica il percorso dell'unità. Ad esempio, per modificare la posizione nella directory principale dell'unità Cert:, digitare:

Set-Location cert:

Quindi, per visualizzare il contenuto dell'unità Cert:, digitare:

Get-ChildItem

Spostamento tra dati gerarchici

È possibile spostarsi attraverso un'unità provider esattamente come si farebbe con un'unità disco rigido. Se i dati sono disposti in una gerarchia di elementi all'interno di elementi, usare una barra rovesciata (\) per indicare un elemento figlio. Utilizzare il seguente formato:

drive:\location\child-location\...

Ad esempio, per modificare la posizione nella chiave del Registro di sistema HKLM\Software, digitare un comando Set-Location, ad esempio:

Set-Location HKLM:\SOFTWARE\

Se un elemento nel nome completo include spazi, è necessario racchiudere il nome tra virgolette doppie ("). Nell'esempio seguente viene illustrato un percorso completo che include spazi.

"C:\Program Files\Internet Explorer\iexplore.exe"

È anche possibile usare riferimenti relativi alle posizioni. Un punto (.) rappresenta la posizione corrente. Ad esempio, se ci si trova nella chiave del Registro di sistema HKLM:\Software\Microsoft e si desidera elencare le sottochiavi del Registro di sistema nella chiave HKLM:\Software\Microsoft\PowerShell, digitare il comando seguente:

Get-ChildItem .\PowerShell

Inoltre, i punti doppi (..) si riferiscono alla directory o al contenitore direttamente sopra la posizione corrente. È possibile usare punti doppi (..) per spostarsi in una gerarchia del provider.

PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\> cd ..\..\LanmanWorkstation\Parameters
PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters>

Pagina iniziale del fornitore

I provider dispongono anche di una posizione home. Questa posizione è condivisa da tutti i PSDrives supportati dal provider. Può essere recuperato visualizzando la proprietà Home del provider.

Get-PSProvider | Format-Table Name, Home
Name        Home
----        ----
Registry
Alias
Environment
FileSystem  C:\Users\username
Function
Variable
Certificate

Il provider di FileSystem è l'unico provider con valore predefinito per Home. È lo stesso valore di $Home. Per altre informazioni, vedere about_Automatic_Variables.

È possibile impostare la directory home per un provider, per la sessione corrente, usando la relativa proprietà .

(Get-PSProvider FileSystem).Home = "C:\"

Il carattere ~ può essere usato per rappresentare la home directory del provider. Se il provider non ha un percorso Home impostato, viene visualizzato un errore.

Cert:\> Set-Location ~
Set-Location : Home location for this provider isn't set. To set the home
location, call "(get-psprovider 'Certificate').Home = 'path'".
At line:1 char:1
+ Set-Location ~
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Set-Location],
                              PSInvalidOperationException
...

Ricerca di parametri dinamici

I parametri dinamici sono parametri cmdlet aggiunti a un cmdlet da un provider. Questi parametri sono disponibili solo quando il cmdlet viene usato con il provider che li ha aggiunti.

Ad esempio, l'unità Cert: aggiunge il parametro CodeSigningCert ai cmdlet Get-Item e Get-ChildItem. È possibile usare questo parametro solo quando si usano Get-Item o Get-ChildItem nell'unità Cert:.

Per un elenco dei parametri dinamici supportati da un provider, vedere il file della Guida per il provider. Tipo:

Get-Help <provider-name>

Per esempio:

Get-Help certificate

Informazioni sui provider

Anche se tutti i dati del provider vengono visualizzati nelle unità e si usano gli stessi metodi per spostarsi tra di essi, la somiglianza si interrompe. Gli archivi dati esposti dal provider possono essere diversi come le posizioni di Active Directory e le cassette postali di Microsoft Exchange Server.

Per informazioni sui singoli provider di PowerShell, digitare:

Get-Help <ProviderName>

Per esempio:

Get-Help registry

Per un elenco di argomenti della Guida sui provider, digitare:

Get-Help * -Category Provider

Vedere anche