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à 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
- Unità -
Alias: - Tipi di oggetto : System.Management.Automation.AliasInfo
- Unità -
- provider di certificati
- Unità -
Cert: - Tipi di oggetto : Microsoft.PowerShell.Commands.X509StoreLocation, System.Security.Cryptography.X509Certificates.X509Certificate2
- Unità -
- provider di environment
- Unità -
Env: - Tipi di oggetto : System.Collections.DictionaryEntry
- Unità -
-
provider di FileSystem
- Unità -
C:e altro a seconda dell'hardware - Tipi di oggetto : System.IO.FileInfo, System.IO.DirectoryInfo
- Unità -
- Provider di funzione
- Unità -
Function: - Tipi di oggetto : System.Management.Automation.FunctionInfo
- Unità -
- provider di del Registro di sistema
- Unità -
HKLM:,HKCU: - Tipi di oggetto : Microsoft.Win32.RegistryKey
- Unità -
- provider di variabili
- Unità -
Variable: - Tipi di oggetto : System.Management.Automation.PSVariable
- Unità -
- provider di WSMan
- Unità -
WSMan: - Tipi di oggetto : Microsoft.WSMan.Management.WSManConfigContainerElement
- Unità -
È 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 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 di FileSystem è possibile usare 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 ChildItem
Cmdlet di contenuto
- add-content
- clear-content
- Get-Content
- set-content
Cmdlet dell'elemento
- cancella elementi
- copy-item
- Get-Item
- Invoke-Item
- move-item
- nuovo elemento
- Remove-Item
- rename-item
- set-item
Cmdlet ItemProperty
- Clear-ItemProperty
- Copy-ItemProperty
- Get-ItemProperty
- Move-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Rename-ItemProperty
- Set-ItemProperty
Cmdlet location
- Get-Location
- pop-location
- di posizione push
- set-location
Cmdlet di percorso
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à 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 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. Usare il formato seguente:
drive:\location\child-location\...
Ad esempio, per modificare il percorso con la 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>
Casa del provider
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. Digitare:
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