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.
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
- aggiungi contenuto
- cancella-contenuto
- Get-Content
- set-content
Cmdlet dell'elemento
- CancellaElemento
- copia-elemento
- Get-Item
- Invoke-Item
- sposta-elemento
- Nuovo Elemento
- Rimuovi-Elemento
- rename-item
- Set-Item
Cmdlet di ItemProperty
- Cancella-ProprietàElemento
- Copy-ItemProperty
- Get-ItemProperty
- Move-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Rename-ItemProperty
- Set-ItemProperty
Cmdlet di localizzazione
- Ottieni-Posizione
- Posizione pop
- Posizione di spinta
- set-location
Cmdlet di percorso
- join-path
- Convert-Path
- split-path
- Resolve-Path
- Percorso di prova
Cmdlet di PSDrive
- Get-PSDrive
- New-PSDrive
- remove-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