about_Providers
Descrizione breve
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à del file system.
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 forniscono l'accesso a diversi tipi di oggetti.
- Provider di alias
- Guida-
Alias:
- Tipi di oggetto - System.Management.Automation.AliasInfo
- Guida-
- Provider di certificati
- Guida-
Cert:
- Tipi di oggetto - Microsoft.PowerShell.Commands.X509StoreLocation, System.Security.Cryptography.X509Certificates.X509Certificate2
- Guida-
- Provider di ambiente
- Guida-
Env:
- Tipi di oggetto - System.Collections.DictionaryEntry
- Guida-
- Provider FileSystem
- Unità e
C:
altro a seconda dell'hardware - Tipi di oggetto - System.IO.FileInfo, System.IO.DirectoryInfo
- Unità e
- Provider di funzioni
- Guida-
Function:
- Tipi di oggetto - System.Management.Automation.FunctionInfo
- Guida-
- Provider del Registro di sistema
- Unità -
HKLM:
,HKCU:
- Tipi di oggetto - Microsoft.Win32.RegistryKey
- Unità -
- Provider di variabili
- Guida-
Variable:
- Tipi di oggetto - System.Management.Automation.PSVariable
- Guida-
- Provider WSMan
- Guida-
WSMan:
- Tipi di oggetto - Microsoft.WSMan.Management.WSManConfigContainerElement
- Guida-
È 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
Nota
I provider Certificato, Registro di sistema e 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 Remove-Module
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 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 New-Item
cmdlet crea un nuovo elemento. Nell'unità C:
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 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 ChildItem
Cmdlet di contenuto
Cmdlet dell'elemento
Cmdlet ItemProperty
- Clear-ItemProperty
- Copy-ItemProperty
- Get-ItemProperty
- Move-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Rename-ItemProperty
- Set-ItemProperty
Cmdlet location
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 Get-PSProvider
cmdlet, ma è possibile ottenere informazioni sull'unità del provider usando il Get-PSDrive
cmdlet . 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 Get-Item
cmdlet 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 HKLM\Software
chiave del Registro di sistema nell'unità HKLM:
da un'altra unità, digitare:
Get-ChildItem HKLM:\SOFTWARE\
Per aprire l'unità, usare il Set-Location
cmdlet . Tenere presente i due punti quando si specifica il percorso dell'unità. Ad esempio, per modificare il percorso nella directory radice 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 il percorso con la chiave del HKLM\Software
Registro di sistema, digitare un Set-Location
comando, 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 si è nella chiave del HKLM:\Software\Microsoft
Registro di sistema e si desidera elencare le sottochiavi del Registro di sistema nella HKLM:\Software\Microsoft\PowerShell
chiave, 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 i punti doppi (..
) per spostarsi tra una gerarchia del provider.
PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\> cd ..\..\LanmanWorkstation\Parameters
PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters>
Provider Home
I provider hanno anche una posizione home . Questo percorso è condiviso da tutti 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 FileSystem è l'unico provider con un valore predefinito per Home. È lo stesso valore di $HOME
. Per altre informazioni, 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 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à aggiunge il parametro CodeSigningCert ai Get-Item
cmdlet e Get-ChildItem
.Cert:
È possibile usare questo parametro solo quando si usa 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>
Ad 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>
Ad esempio:
Get-Help registry
Per un elenco di argomenti della Guida sui provider, digitare:
Get-Help * -Category Provider