Informazioni sui providerAbout Providers

Breve descrizioneShort description

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.Describes how PowerShell providers provide access to data and components that wouldn't otherwise be easily accessible at the command line. I dati vengono presentati in un formato coerente simile a un file system unità.The data is presented in a consistent format that resembles a file system drive.

Descrizione lungaLong description

I provider PowerShell sono programmi .NET che consentono di accedere agli archivi dati specializzati per semplificare la visualizzazione e la gestione.PowerShell providers are .NET programs that provide access to specialized data stores for easier viewing and management. I dati vengono visualizzati in un'unità e si accede ai dati in un percorso analogo a quello di un'unità disco rigido.The data appears in a drive, and you access the data in a path like you would on a hard disk drive. È possibile utilizzare uno dei cmdlet predefiniti supportati dal provider per gestire i dati nell'unità del provider.You can use any of the built-in cmdlets that the provider supports to manage the data in the provider drive. È anche possibile usare cmdlet personalizzati progettati appositamente per i dati.And, you can use custom cmdlets that are designed especially for the data.

I provider possono anche aggiungere parametri dinamici ai cmdlet predefiniti.The providers can also add dynamic parameters to the built-in cmdlets. Questi parametri sono disponibili solo quando si utilizza il cmdlet con i dati del provider.These parameters are only available when you use the cmdlet with the provider data.

Provider predefinitiBuilt-in providers

PowerShell include un set di provider predefiniti che è possibile usare per accedere ai diversi tipi di archivi dati.PowerShell includes a set of built-in providers that you can use to access the different types of data stores.

ProviderProvider UnitàDrive(s) OutputTypeOutputType
AliasAlias Alias:Alias: System. Management. Automation. AliasInfoSystem.Management.Automation.AliasInfo
CertificatoCertificate Cert:Cert: Microsoft. PowerShell. Commands. X509StoreLocationMicrosoft.PowerShell.Commands.X509StoreLocation
System.Security.Cryptography.X509Certificates.X509Certificate2System.Security.Cryptography.X509Certificates.X509Certificate2
EnvironmentEnvironment Env:Env: System. Collections. DictionaryEntrySystem.Collections.DictionaryEntry
FileSystemFileSystem C: (*)C: (*) System. IO. FileInfoSystem.IO.FileInfo
System. IO. DirectoryInfoSystem.IO.DirectoryInfo
FunzioneFunction Funzione:Function: System. Management. Automation. FunctionInfoSystem.Management.Automation.FunctionInfo
RegistroRegistry HKLM: HKCU:HKLM: HKCU: Microsoft. Win32. RegistryKeyMicrosoft.Win32.RegistryKey
VariabileVariable Variable:Variable: System. Management. Automation. PSVariableSystem.Management.Automation.PSVariable
WSManWSMan WSMan:WSMan: Microsoft. WSMan. Management. oggetto WSManConfigContainerElementMicrosoft.WSMan.Management.WSManConfigContainerElement

(*) Le unità FileSystem variano in ogni sistema.(*) The FileSystem drives vary on each system.

È anche possibile creare provider PowerShell personalizzati ed è possibile installare i provider che altri utenti sviluppano.You can also create your own PowerShell providers, and you can install providers that others develop. Per elencare i provider disponibili nella sessione, digitare:To list the providers that are available in your session, type:

Get-PSProvider

Installazione e rimozione di providerInstalling and removing providers

I provider vengono in genere installati tramite i moduli di PowerShell.Providers are typically installed via PowerShell modules. L'importazione del modulo carica il provider nella sessione.Importing the module loads the provider into your session. Non è possibile disinstallare i provider predefiniti.You can't uninstall the built-in providers. È possibile disinstallare i provider caricati da altri moduli.You can uninstall providers loaded by other modules.

È possibile scaricare un provider dalla sessione corrente usando il Remove-Module cmdlet.You can unload a provider from the current session using the Remove-Module cmdlet. Questo cmdlet non disinstalla il provider, ma rende il provider non disponibile nella sessione.This cmdlet doesn't uninstall the provider, but it makes the provider unavailable in the session.

È anche possibile usare il Remove-PSDrive cmdlet per rimuovere qualsiasi unità dalla sessione corrente.You can also use the Remove-PSDrive cmdlet to remove any drive from the current session. Questi dati nell'unità non sono interessati, ma l'unità non è più disponibile in tale sessione.This data on the drive isn't affected, but the drive is no longer available in that session.

Visualizzazione di providerViewing providers

Per visualizzare i provider PowerShell nel computer, digitare:To view the PowerShell providers on your computer, type:

Get-PSProvider

L'output elenca i provider predefiniti e i provider aggiunti alla sessione.The output lists the built-in providers and the providers that you added to the session.

Cmdlet del providerThe provider cmdlets

I cmdlet seguenti sono progettati per funzionare con i dati esposti da qualsiasi provider.The following cmdlets are designed to work with the data exposed by any provider. È possibile utilizzare gli stessi cmdlet nello stesso modo per gestire i diversi tipi di dati esposti dai provider.You can use the same cmdlets in the same way to manage the different types of data that providers expose. Dopo aver apprendere come gestire i dati di un provider, è possibile utilizzare le stesse procedure con i dati di qualsiasi provider.After you learn to manage the data of one provider, you can use the same procedures with the data from any provider.

Ad esempio, tramite il New-Item cmdlet viene creato un nuovo elemento.For example, the New-Item cmdlet creates a new item. Nell' C: unità supportata dal provider filesystem , è possibile usare New-Item per creare un nuovo file o una nuova cartella.In the C: drive that is supported by the FileSystem provider, you can use New-Item to create a new file or folder. Nelle unità supportate dal provider del registro di sistema , è possibile utilizzare New-Item per creare una nuova chiave del registro di sistema.In the drives that are supported by the Registry provider, you can use New-Item to create a new registry key. Nell' Alias: unità è possibile usare New-Item per creare un nuovo alias.In the Alias: drive, you can use New-Item to create a new alias.

Per informazioni dettagliate sui cmdlet seguenti, digitare:For detailed information about any of the following cmdlets, type:

Get-Help <cmdlet-name> -Detailed

Cmdlet ChildItemChildItem cmdlets

Cmdlet per il contenutoContent Cmdlets

Cmdlet ItemItem Cmdlets

Cmdlet ItemPropertyItemProperty cmdlets

Cmdlet LocationLocation cmdlets

Cmdlet PathPath cmdlets

Cmdlet PSDrivePSDrive cmdlets

Cmdlet PSProviderPSProvider Cmdlets

Visualizzazione dei dati del providerViewing provider data

Il vantaggio principale di un provider è che espone i propri dati in modo familiare e coerente.The primary benefit of a provider is that it exposes its data in a familiar and consistent way. Il modello per la presentazione dei dati è un'unità file system.The model for data presentation is a file system drive.

Il provider consente di visualizzare, esplorare e modificare gli elementi nell'archivio dati come se fossero dati in un file system.The provider allows you to view, navigate, and change items in the data store as though they were data in a file system. È possibile accedere all'archivio dati in base al nome dell'unità supportata.The data store is accessed by the name of the drive that it supports.

L'unità viene elencata nella visualizzazione predefinita del Get-PSProvider cmdlet, ma è possibile ottenere informazioni sull'unità del provider utilizzando il Get-PSDrive cmdlet.The drive is listed in the default display of the Get-PSProvider cmdlet, but you can get information about the provider drive using the Get-PSDrive cmdlet. Ad esempio, per ottenere tutte le proprietà della funzione: unità, digitare:For example, to get all the properties of the Function: drive, type:

Get-PSDrive Function | Format-List *

È possibile visualizzare e spostarsi tra i dati in un'unità del provider esattamente come in un'unità file system.You can view and move through the data in a provider drive just as you would on a file system drive.

Per visualizzare il contenuto di un'unità del provider, utilizzare i cmdlet Get-Item o Get-ChildItem.To view the contents of a provider drive, use the Get-Item or Get-ChildItem cmdlets. Digitare il nome dell'unità seguito da due punti (:).Type the drive name followed by a colon (:). Ad esempio, per visualizzare il contenuto dell'unità alias:, digitare:For example, to view the contents of the Alias: drive, type:

Get-Item alias:

È possibile visualizzare e gestire i dati in qualsiasi unità da un'altra unità includendo il nome dell'unità nel percorso.You can view and manage the data in any drive from another drive by including the drive name in the path. Ad esempio, per visualizzare la chiave del registro di sistema HKLM\Software nell'unità HKLM: da un'altra unità, digitare:For example, to view the HKLM\Software registry key in the HKLM: drive from another drive, type:

Get-ChildItem HKLM:\SOFTWARE\

Per aprire l'unità, usare il cmdlet Set-Location.To open the drive, use the Set-Location cmdlet. Ricordare i due punti quando si specifica il percorso dell'unità.Remember the colon when you specify the drive path. Ad esempio, per modificare il percorso della directory radice dell'unità Cert:, digitare:For example, to change your location to the root directory of the Cert: drive, type:

Set-Location cert:

Quindi, per visualizzare il contenuto dell'unità Cert:, digitare:Then, to view the contents of the Cert: drive, type:

Get-ChildItem

Passaggio attraverso dati gerarchiciMoving through hierarchical data

È possibile spostarsi in un'unità del provider esattamente come se si trattasse di un'unità disco rigido.You can move through a provider drive just as you would a hard disk drive. Se i dati sono disposti in una gerarchia di elementi all'interno di elementi, utilizzare una barra rovesciata ( \ ) per indicare un elemento figlio.If the data is arranged in a hierarchy of items within items, use a backslash (\) to indicate a child item. Utilizzare il seguente formato:Use the following format:

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:For example, to change your location to the HKLM\Software registry key, type a Set-Location command, such as:

Set-Location HKLM:\SOFTWARE\

Se un elemento del nome completo include spazi, è necessario racchiudere il nome tra virgolette doppie ( " ).If any element in the fully qualified name includes spaces, you must enclose the name in double-quotation marks ("). Nell'esempio seguente viene illustrato un percorso completo che include spazi.The following example shows a fully qualified path that includes spaces.

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

È anche possibile usare riferimenti relativi a percorsi.You can also use relative references to locations. Un punto ( . ) rappresenta la posizione corrente.A dot (.) represents the current location. Ad esempio, se si è nella HKLM:\Software\Microsoft chiave del registro di sistema e si desidera elencare le sottochiavi del registro di sistema nella HKLM:\Software\Microsoft\PowerShell chiave, digitare il comando seguente:For example, if you are in the HKLM:\Software\Microsoft registry key, and you want to list the registry subkeys in the HKLM:\Software\Microsoft\PowerShell key, type the following command:

Get-ChildItem .\PowerShell

Inoltre, i due punti ( .. ) fanno riferimento alla directory o al contenitore immediatamente sopra la posizione corrente.Also, double-dots (..) refers to the directory or container directly above your current location. È possibile utilizzare i due punti ( .. ) per spostarsi in una gerarchia di provider.You can use double-dots (..) to navigate through a provider hierarchy.

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

Home page providerProvider Home

I provider hanno anche un percorso Home .Providers also have a Home location. Questo percorso è condiviso da tutti PSDrives i backup del provider.This location is shared by all PSDrives backed by the provider. Può essere recuperato visualizzando la proprietà Home del provider.It can be retrieved by viewing the Home property of the 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 che ha un valore predefinito per Home.The FileSystem provider is the only provider that has a default value for Home. Si tratta dello stesso valore di $Home .It's the same value as $Home. Per ulteriori informazioni, vedere about_Automatic_Variables.For more information, see about_Automatic_Variables.

È possibile impostare la Home directory per un provider, per la sessione corrente, usando la relativa proprietà.You can set the Home directory for a provider, for the current session, using its property.

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

Il ~ carattere può essere usato per rappresentare la home directory del provider.The ~ character can be used to represent the provider's home directory. Se per il provider non è impostato un percorso Home , viene visualizzato un errore.If the provider doesn't have a Home location set, you see an error.

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 dinamiciFinding dynamic parameters

I parametri dinamici sono parametri del cmdlet aggiunti a un cmdlet da un provider.Dynamic parameters are cmdlet parameters that are added to a cmdlet by a provider. Questi parametri sono disponibili solo quando il cmdlet viene utilizzato con il provider che li ha aggiunti.These parameters are available only when the cmdlet is used with the provider that added them.

Ad esempio, l' Cert: unità aggiunge il parametro CodeSigningCert ai Get-Item cmdlet e Get-ChildItem .For example, the Cert: drive adds the CodeSigningCert parameter to the Get-Item and Get-ChildItem cmdlets. È possibile usare questo parametro solo quando si usa Get-Item o Get-ChildItem nell' Cert: unità.You can use this parameter only when you use Get-Item or Get-ChildItem in the Cert: drive.

Per un elenco dei parametri dinamici supportati da un provider, vedere il file della Guida per il provider.For a list of the dynamic parameters that a provider supports, see the Help file for the provider. Digitare:Type:

Get-Help <provider-name>

Ad esempio:For example:

Get-Help certificate

Informazioni sui providerLearning about providers

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.Although all provider data appears in drives and you use the same methods to move through them, the similarity stops there. Gli archivi dati esposti dal provider possono essere diversi come Active Directory posizioni e cassette postali di Microsoft Exchange Server.The data stores that the provider exposes can be as varied as Active Directory locations and Microsoft Exchange Server mailboxes.

Per informazioni sui singoli provider PowerShell, digitare:For information about individual PowerShell providers, type:

Get-Help <ProviderName>

Ad esempio:For example:

Get-Help registry

Per un elenco degli argomenti della guida sui provider, digitare:For a list of Help topics about the providers, type:

Get-Help * -Category Provider

Vedere ancheSee also

about_Locationsabout_Locations

about_Path_Syntaxabout_Path_Syntax