Informazioni sui provider
Breve descrizione
Viene descritto in che modo i provider PowerShell forniscono l'accesso a dati e componenti che altrimenti non sarebbero facilmente accessibili dalla riga di comando. I dati vengono presentati in un formato coerente simile a un file system unità.
Descrizione lunga
I provider PowerShell sono Microsoft .NET programmi basati su Framework che rendono disponibili in PowerShell i dati in un archivio dati specializzato, in modo che sia possibile visualizzarli e gestirli.
I dati esposti da un provider vengono visualizzati in un'unità e si accede ai dati in un percorso analogo a quello di un'unità disco rigido. È possibile utilizzare 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. Si tratta di parametri disponibili solo quando si utilizza 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.
Provider | Unità | Archivio dati |
---|---|---|
Alias | Alias: | Alias di PowerShell |
Certificato | Cert: | certificati X509 per le firme digitali |
Ambiente | Env: | Variabili di ambiente Windows |
FileSystem | (*) | Unità file System, directory e file |
Funzione | Funzione: | Funzioni di PowerShell |
Registro | HKLM:, HKCU: | Registro di sistema di Windows |
Variabile | Variable: | Variabili di PowerShell |
WSMan | WSMan: | Informazioni sulla configurazione di WS-Management |
(*) Le unità FileSystem variano in ogni sistema.
È anche possibile creare provider PowerShell personalizzati ed è possibile installare i provider che altri utenti sviluppano. Per elencare i provider disponibili nella sessione, digitare:
Get-PSProvider
Installazione e rimozione di provider
I provider PowerShell vengono recapitati all'utente negli snap-in di PowerShell, che sono programmi basati su .NET Framework compilati in file con estensione dll. Gli snap-in possono includere provider e cmdlet.
Prima di usare le funzionalità del provider, è necessario installare lo snap-in e quindi aggiungerlo alla sessione di PowerShell. Per ulteriori informazioni, vedere about_PSSnapins.
Non è possibile disinstallare un provider, anche se è possibile rimuovere lo snap-in di PowerShell per il provider dalla sessione corrente. In tal caso, sarà necessario rimuovere tutto il contenuto dello snap-in, inclusi i relativi cmdlet.
Per rimuovere un provider dalla sessione corrente, utilizzare il Remove-PSSnapin
cmdlet. Questo cmdlet non disinstalla il provider, ma rende il provider non disponibile nella sessione.
È anche possibile usare il Remove-PSDrive
cmdlet per rimuovere qualsiasi unità dalla sessione corrente. Questi dati nell'unità non sono interessati, ma l'unità non è più disponibile in tale sessione.
Visualizzazione di provider
Per visualizzare i provider 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 funzionare con i dati esposti da qualsiasi provider. È possibile utilizzare gli stessi cmdlet nello stesso modo per gestire i diversi tipi di dati esposti dai provider. Dopo aver apprendere come gestire i dati di un provider, è possibile utilizzare le stesse procedure con i dati di qualsiasi provider.
Ad esempio, tramite il New-Item
cmdlet viene creato un nuovo elemento. Nell' C:
unità supportata dal provider filesystem , è possibile usare New-Item
per creare un nuovo file o una nuova cartella. Nelle unità supportate dal provider del registro di sistema , è possibile utilizzare New-Item
per creare una nuova chiave del registro di sistema. Nell' Alias:
unità è possibile usare New-Item
per creare un nuovo alias.
Per informazioni dettagliate sui cmdlet seguenti, digitare:
Get-Help <cmdlet-name> -Detailed
Cmdlet ChildItem
Cmdlet per il contenuto
Cmdlet Item
Cmdlet ItemProperty
- Clear-ItemProperty
- Copy-ItemProperty
- Get-ItemProperty
- Move-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Rename-ItemProperty
- Set-ItemProperty
Cmdlet Location
Cmdlet Path
Cmdlet PSDrive
Cmdlet PSProvider
Visualizzazione dei dati del provider
Il vantaggio principale di un provider è che espone i propri dati in modo familiare e coerente. Il modello per la presentazione dei dati è un'unità file system.
Per usare i dati esposti dal provider, è possibile visualizzarli, spostarli e modificarli come se fossero dati su un disco rigido. Pertanto, le informazioni più importanti su un provider sono il nome dell'unità supportata.
L'unità viene elencata nella visualizzazione predefinita del Get-PSProvider
cmdlet, ma è possibile ottenere informazioni sull'unità del provider utilizzando il Get-PSDrive
cmdlet. Ad esempio, per ottenere tutte le proprietà della funzione: unità, digitare:
Get-PSDrive Function | Format-List *
È possibile visualizzare e spostarsi tra i dati in un'unità del provider esattamente come 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. Ricordare i due punti quando si specifica il percorso dell'unità. Ad esempio, per modificare il percorso della directory radice dell'unità Cert:, digitare:
Set-Location cert:
Quindi, per visualizzare il contenuto dell'unità Cert:, digitare:
Get-ChildItem
Passaggio attraverso dati gerarchici
È possibile spostarsi in un'unità del provider esattamente come se si trattasse di un'unità disco rigido.
Se i dati sono disposti in una gerarchia di elementi all'interno di elementi, utilizzare una barra rovesciata ( \
) per indicare un elemento figlio. Utilizzare il seguente formato:
drive:\location\child-location\...
Ad esempio, per impostare il percorso sulla chiave del registro di sistema HKLM\Software, digitare un comando set-location, ad esempio:
Set-Location HKLM:\SOFTWARE\
È anche possibile usare riferimenti relativi a percorsi. Un punto (.) rappresenta la posizione corrente. Ad esempio, se si è 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
Home page provider
I provider hanno anche un percorso Home . Questo percorso è condiviso da tutti PSDrives
i backup del provider. Può essere recuperato visualizzando la proprietà Home del provider.
Get-PSProvider | Format-Table Name, Home
Name Home
---- ----
Registry
Alias
Environment
FileSystem C:\Users\robreed
Function
Variable
Certificate
Il provider filesystem è l'unico provider che ha un valore predefinito per Home. Si tratta dello stesso valore di $Home
vedere about_Automatic_Variables.
È possibile impostare la Home directory 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 per il provider non è impostato un percorso Home , verrà visualizzato un errore.
Cert:\> Set-Location ~
Set-Location : Home location for this provider is not 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 del cmdlet aggiunti a un cmdlet da un provider. Questi parametri sono disponibili solo quando il cmdlet viene utilizzato con il provider che li ha aggiunti.
Ad esempio, l' Cert:
unità aggiunge il parametro CodeSigningCert ai Get-Item
cmdlet e Get-ChildItem
. È possibile usare questo parametro solo quando si usa Get-Item
o Get-ChildItem
nell' Cert:
unità.
Per un elenco dei parametri dinamici supportati da un provider, vedere il file della Guida per il provider. Digitare:
Get-Help <provider-name>
Ad esempio:
Get-Help certificate
Informazioni sui provider
Sebbene tutti i dati del provider siano presenti nelle unità e si utilizzino gli stessi metodi per spostarsi tra di essi, la somiglianza viene arrestata. Gli archivi dati esposti dal provider possono essere diversi come Active Directory posizioni e cassette postali di Microsoft Exchange Server.
Per informazioni sui singoli provider PowerShell, digitare:
Get-Help <ProviderName>
Ad esempio:
Get-Help registry
Per un elenco degli argomenti della guida sui provider, digitare:
Get-Help * -Category Provider