about_Parameters

Descrizione breve

Descrive come usare i parametri dei comandi in PowerShell.

Descrizione lunga

La maggior parte dei comandi di PowerShell, ad esempio cmdlet, funzioni e script, si basa su parametri per consentire agli utenti di selezionare opzioni o fornire input. I parametri seguono il nome del comando e hanno il formato seguente:

-<parameter_name> <parameter_value>
-<parameter_name>:<parameter_value>

Il nome del parametro è preceduto da un trattino (-), che segnala a PowerShell che la parola che segue il trattino è un nome di parametro. Il nome e il valore del parametro possono essere separati da uno spazio o da due punti. Alcuni parametri non richiedono o accettano un valore di parametro. Altri parametri richiedono un valore, ma non richiedono il nome del parametro nel comando .

Il tipo di parametri e i requisiti per tali parametri variano. Per trovare informazioni sui parametri di un comando, usare il Get-Help cmdlet . Ad esempio, per trovare informazioni sui parametri del Get-ChildItem cmdlet, digitare:

Get-Help Get-ChildItem

Per trovare informazioni sui parametri di uno script, usare il percorso completo del file di script. Ad esempio:

Get-Help $HOME\Documents\Scripts\Get-Function.ps1

Il Get-Help cmdlet restituisce vari dettagli sul comando, tra cui una descrizione, la sintassi del comando, informazioni sui parametri ed esempi che illustrano come usare i parametri in un comando.

È anche possibile usare il parametro Parameter del Get-Help cmdlet per trovare informazioni su un determinato parametro. In alternativa, è possibile usare il parametro Parameter con il valore carattere jolly ( * ) per trovare informazioni su tutti i parametri del comando. Ad esempio, il comando seguente ottiene informazioni su tutti i parametri del Get-Member cmdlet:

Get-Help Get-Member -Parameter *

Valori dei parametri predefiniti

I parametri facoltativi hanno un valore predefinito, ovvero il valore usato o assunto quando il parametro non viene specificato nel comando.

Ad esempio, il valore predefinito del parametro ComputerName di molti cmdlet è il nome del computer locale. Di conseguenza, il nome del computer locale viene usato nel comando a meno che non venga specificato il parametro ComputerName .

Per trovare il valore del parametro predefinito, vedere l'argomento della Guida per il cmdlet . La descrizione del parametro deve includere il valore predefinito.

È anche possibile impostare un valore predefinito personalizzato per qualsiasi parametro di un cmdlet o di una funzione avanzata. Per informazioni sull'impostazione di valori predefiniti personalizzati, vedere about_Parameters_Default_Values.

Tabella degli attributi dei parametri

Quando si usano i parametri Full, Parameter o Online del Get-Help cmdlet, Get-Help visualizza una tabella degli attributi dei parametri con informazioni dettagliate sul parametro.

Queste informazioni includono i dettagli necessari per usare il parametro . Ad esempio, l'argomento della Guida per il Get-ChildItem cmdlet include i dettagli seguenti sul relativo parametro Path:

-Path <string[]>
    Specifies a path of one or more locations. Wildcard characters are
    permitted. The default location is the current directory (.).

Required?                    false
Position?                    0
Default value                Current directory
Accept pipeline input?       true (ByValue, ByPropertyName)
Accept wildcard characters?  true

Le informazioni sui parametri includono la sintassi dei parametri, una descrizione del parametro e gli attributi dei parametri. Le sezioni seguenti descrivono gli attributi dei parametri.

Parametro obbligatorio

Questa impostazione indica se il parametro è obbligatorio, ovvero se tutti i comandi che usano questo cmdlet devono includere questo parametro. Quando il valore è True e il parametro non è presente nel comando, PowerShell richiede un valore per il parametro .

Posizione parametro

Se l'impostazione Position è impostata su un numero intero non negativo, il nome del parametro non è obbligatorio. Questo tipo di parametro viene definito parametro posizionale e il numero indica la posizione in cui il parametro deve essere visualizzato in relazione ad altri parametri posizionali. Un parametro denominato può essere elencato in qualsiasi posizione dopo il nome del cmdlet. Se si include il nome del parametro per un parametro posizionale, il parametro può essere elencato in qualsiasi posizione dopo il nome del cmdlet.

Ad esempio, il Get-ChildItem cmdlet ha parametri Path ed Exclude. L'impostazione Position di Path è 0, ovvero un parametro posizionale. L'impostazione Position di Exclude è denominata.

Ciò significa che Path non richiede il nome del parametro, ma il relativo valore del parametro deve essere il primo o solo il valore del parametro senza nome nel comando. Tuttavia, poiché il parametro Exclude è un parametro denominato, è possibile inserirlo in qualsiasi posizione nel comando.

In seguito alle Position impostazioni per questi due parametri, è possibile usare uno dei comandi seguenti:

Get-ChildItem -Path c:\techdocs -Exclude *.ppt
Get-ChildItem c:\techdocs -Exclude *.ppt
Get-ChildItem -Exclude *.ppt -Path c:\techdocs
Get-ChildItem -Exclude *.ppt c:\techdocs

Se si desidera includere un altro parametro posizionale senza includere il nome del parametro, tale parametro deve essere inserito nell'ordine specificato dall'impostazione Position .

Tipo di parametro

Questa impostazione specifica il tipo microsoft .NET Framework del valore del parametro. Ad esempio, se il tipo è Int32, il valore del parametro deve essere un numero intero. Se il tipo è stringa, il valore del parametro deve essere una stringa di caratteri. Se la stringa contiene spazi, il valore deve essere racchiuso tra virgolette oppure gli spazi devono essere preceduti dal carattere di escape (`).

Valore predefinito

Questa impostazione specifica il valore che il parametro presuppone se non viene specificato alcun altro valore. Ad esempio, il valore predefinito del parametro Path è spesso la directory corrente. I parametri obbligatori non hanno mai un valore predefinito. Per molti parametri facoltativi, non esiste alcuna impostazione predefinita perché il parametro non ha alcun effetto se non viene usato.

Accetta più valori

Questa impostazione indica se un parametro accetta più valori di parametro. Quando un parametro accetta più valori, è possibile digitare un elenco delimitato da virgole come valore del parametro nel comando oppure salvare un elenco delimitato da virgole (una matrice) in una variabile e quindi specificare la variabile come valore del parametro.

Ad esempio, il parametro Name del Get-Service cmdlet accetta più valori. I comandi seguenti sono entrambi validi:

Get-Service -Name winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -Name $s

Accetta l'input della pipeline

Questa impostazione indica se è possibile usare l'operatore pipeline (|) per inviare un valore al parametro .

Value                    Description
-----                    -----------
False                    Indicates that you cannot pipe a value to the
                         parameter.

True (by Value)          Indicates that you can pipe any value to the
                         parameter, just so the value has the .NET
                         Framework type specified for the parameter or the
                         value can be converted to the specified .NET
                         Framework type.

Quando un parametro è "True (by Value)", PowerShell tenta di associare tutti i valori inviati tramite pipe a tale parametro prima di cercare altri metodi per interpretare il comando.

True (by Property Name)  Indicates that you can pipe a value to the
                         parameter, but the .NET Framework type of the
                         parameter must include a property with the same
                         name as the parameter.

Ad esempio, è possibile inviare tramite pipe un valore a un parametro Name solo quando il valore ha una proprietà denominata Name.

Nota

Un parametro tipizzato che accetta l'input della pipeline (by Value) o (by PropertyName) consente l'uso di blocchi di script di associazione ritardata nel parametro .

Il blocco di script delay bind viene eseguito automaticamente durante ParameterBinding. Il risultato è associato al parametro . L'associazione ritardata non funziona per i parametri definiti come tipo ScriptBlock o System.Object, il blocco di script viene passato senza essere richiamato.

Per informazioni sui blocchi di script di associazione ritardata, vedere qui about_Script_Blocks.md

Accetta caratteri jolly

Questa impostazione indica se il valore del parametro può contenere caratteri jolly in modo che il valore del parametro possa corrispondere a più di un elemento esistente nel contenitore di destinazione.

Parametri comuni

I parametri comuni sono parametri che è possibile usare con qualsiasi cmdlet. Per altre informazioni sui parametri comuni, vedere about_CommonParameters.

Vedi anche