Sintassi del cmdlet di Exchange

Gli articoli di riferimento sui cmdlet di Exchange usano un metodo standardizzato che descrive gli aspetti chiave del cmdlet. Ad esempio:

  • Parametri disponibili nel cmdlet.
  • Valori accettati da ogni parametro.
  • Parametri che possono essere usati insieme e parametri che devono essere usati separatamente.

Questo articolo illustra queste convenzioni e anche la sintassi necessaria per eseguire i comandi in Exchange PowerShell.

Convenzioni del comando in Exchange PowerShell

La Guida di Exchange PowerShell segue le convenzioni che indicano quanto è necessario o facoltativo e come immettere parametri e valori quando si esegue un comando. Tali convenzioni del comando sono elencate nella tabella seguente.

Simbolo Descrizione
- Un trattino indica un parametro. Ad esempio, -Identity.
< > Eventuali parentesi angolari indicano i valori possibili per un parametro. Ad esempio, -Location <ServerName> o -Enabled <$true | $false>.
[ ] Parentesi quadre indicano parametri facoltativi e i rispettivi valori. Ad esempio, [-WhatIf] o [-ResultSize <Unlimited>].

Le coppie parametro-valore non racchiuse in parentesi quadre sono obbligatorie. Ad esempio, -Password <SecureString>.

Le parentesi quadre intorno al nome del parametro stesso indicano un parametro posizionale (è possibile usare il valore del parametro senza specificare il nome del parametro) e i parametri posizionali possono essere obbligatori o facoltativi.

Ad esempio, Get-Mailbox [[-Identity] <MailboxIdParameter>] significa che il parametro Identity è posizionale (perché è racchiuso tra parentesi quadre) e facoltativo (perché l'intera coppia parametro-valore è racchiusa tra parentesi quadre), quindi è possibile usare Get-Mailbox -Identity <MailboxIdParameter> o Get-Mailbox <MailboxIdParameter>. Analogamente, Set-Mailbox [-Identity] <MailboxIdParameter> significa che il parametro Identity è posizionale (perché è racchiuso tra parentesi quadre) e obbligatorio (perché l'intera coppia parametro-valore non è racchiusa tra parentesi quadre), quindi è possibile usare Set-Mailbox -Identity <MailboxIdParameter> o Set-Mailbox <MailboxIdParameter>.
| Le barre verticali nei valori di parametri indicano una scelta tra i valori. Ad esempio, -Enabled <$true | $false> indica che il parametro Enabled può avere il valore $true o $false.

Queste convenzioni del comando consentono di comprendere come sia strutturato un comando. Ad eccezione del trattino che indica un parametro, questi simboli non vengono usati come descritto nella tabella quando si eseguono cmdlet in Exchange PowerShell.

Set di parametri in Exchange PowerShell

I set di parametri sono gruppi di parametri che possono essere utilizzati con altri nello stesso comando. Ogni set di parametri contiene almeno un parametro non disponibile negli altri set di parametri, ma i set di parametri condividono in genere alcuni parametri.

Molti cmdlet hanno un solo set di parametri, il che significa che tutti i parametri possono essere usati l'uno con l'altro. Altri cmdlet hanno diversi set di parametri, il che significa che alcuni parametri non possono essere usati con altri parametri. Ad esempio, se i seguenti set di parametri sono disponibili sul cmdlet New-SystemMessage:

New-SystemMessage -DsnCode <EnhancedStatusCode> -Internal <Boolean> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <CommonParameters>

New-SystemMessage -QuotaMessageType <QuotaMessageType> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <CommonParameters>

I parametri seguenti sono disponibili nel primo set di parametri, quindi è possibile usarli nello stesso comando:

  • DsnCode
  • Interno
  • Lingua
  • Testo
  • Conferma
  • Domaincontroller
  • Whatif

I parametri seguenti sono disponibili nel secondo set di parametri, quindi è possibile usarli nello stesso comando:

  • QuotaMessageType
  • Lingua
  • Testo
  • Conferma
  • Domaincontroller
  • Whatif

I parametri DsnCode e Internal sono disponibili solo nel primo set di parametri. Il parametro QuotaMessageType è disponibile solo nel secondo set di parametri. Non è quindi possibile usare i parametri seguenti nello stesso comando:

  • DsnCode e QuotaMessageType.
  • Internal e QuotaMessageType.

I parametri seguenti sono disponibili in entrambi i set di parametri, quindi è possibile usarli in qualsiasi comando New-SystemMessage :

  • Lingua
  • Testo
  • Conferma
  • Domaincontroller
  • Whatif

La <CommonParameters> voce indica che il cmdlet supporta i parametri di Windows PowerShell di base disponibili praticamente in qualsiasi cmdlet , ad esempio Verbose. È possibile usare parametri comuni con parametri di qualsiasi set di parametri. Per altre informazioni, vedere about_CommonParameters.

Virgolette in Exchange PowerShell

In Exchange PowerShell, le virgolette singole (') o doppie (") si utilizzano per racchiudere i valori dei parametri che contengono spazi. Ad esempio, i comandi seguenti hanno lo stesso comportamento:

  • Get-ReceiveConnector -Identity "Contoso Receive Connector"

  • Get-ReceiveConnector -Identity 'Contoso Receive Connector'

Negli esempi precedenti, se il valore non è racchiuso tra virgolette singole o doppie, il comando ha esito negativo perché PowerShell considera ogni parola come un nuovo argomento (ritiene che Contoso sia il valore del parametro Identity e Receive sia il valore di un parametro posizionale non specificato). In questo esempio l'errore è simile al seguente:

Impossibile trovare un parametro posizionale che accetta l'argomento 'Receive'

Per i valori di testo normale, le virgolette singole e le virgolette doppie non sono davvero importanti. Tuttavia, la scelta è importante quando sono coinvolte le variabili:

  • Virgolette doppie: le variabili vengono sostituite con i valori effettivi.
  • Virgolette singole: le variabili vengono trattate letteralmente.

Ad esempio, restituisce $Server = Mailbox01 l'output seguente in base alle virgolette usate:

  • "$Server Example" restituisce Mailbox01 Example.
  • '$Server Example' restituisce $Server Example.

Per altre informazioni sulle variabili, vedere about_Variables e about_Automatic_Variables.

Caratteri di escape in Exchange PowerShell

In qualsiasi linguaggio di programmazione, un carattere di escape viene utilizzato per identificare i caratteri speciali letteralmente e non per la loro funzione normale in tale linguaggio. In Exchange PowerShell, quando si racchiude una stringa di testo tra virgolette doppie, il carattere di escape è il carattere di escape tra virgolette posteriori ( ' ).

Ad esempio, se si desidera l'output , immettere il valore "Il prezzo è '$23".If you want the output The price is $23, enter the value "The price is '$23". Il carattere di escape è obbligatorio per il carattere di segno di dollaro ( $ ) perché $ definisce le variabili in PowerShell.

Se si racchiude la stringa tra virgolette singole, l'unico carattere speciale di cui si deve preoccuparsi è il carattere virgoletta singola stesso, che richiede due virgolette singole per l'escape ( '' ).

Ad esempio, se si desidera l'output Don't confuse two single quotation marks with a double quotation mark!, immettere il valore 'Non confondere due virgolette singole con virgolette doppie!'.

Operatori di comandi in Exchange PowerShell

La seguente tabella mostra gli operatori validi utilizzabili in un comando Exchange. Alcuni di questi simboli sono stati descritti anche nella sezione precedente Convenzioni del comando in Exchange PowerShell. Tuttavia, questi simboli hanno significati diversi quando sono utilizzati sulla riga di comando come operatori. Ad esempio, il segno meno utilizzato per indicare un parametro può essere utilizzato anche in un comando come operatore matematico.

Operatore Descrizione
= Il segno di uguale è un carattere di assegnazione. Il valore a destra del segno di uguale viene assegnato alla variabile sul lato sinistro del segno di uguale (ad esempio, $x= Get-Mailbox). È anche possibile usare altri caratteri con il segno di uguale:
  • +=: aggiungere il valore a destra del segno di uguale al valore corrente contenuto nella variabile sul lato sinistro del segno di uguale.
  • -=: sottrae il valore a destra del segno di uguale dal valore corrente contenuto nella variabile sul lato sinistro del segno di uguale.
  • *=: moltiplicare il valore corrente della variabile sul lato sinistro del segno di uguale per il valore specificato sul lato destro del segno di uguale.
  • /=: dividere il valore corrente della variabile sul lato sinistro del segno di uguale per il valore specificato sul lato destro del segno di uguale.
  • %=: modificare il valore corrente della variabile sul lato sinistro del segno di uguale in base al valore specificato sul lato destro del segno di uguale.
: Usare due punti per separare il nome di un parametro dal valore del parametro. Ad esempio, -Enabled:$True. Un separatore di due punti funziona ed è facoltativo praticamente in tutte le coppie parametro-valore. Nei parametri switch è necessario un separatore di due punti. Per altre informazioni sui parametri switch, vedere about_Parameters.
! Il punto esclamativo è l'operatore NOT logico. La coppia != combinata significa "non uguale a".
[ ] Le parentesi quadre specificano il valore di indice di una posizione della matrice. I valori di indice sono offset che iniziano sempre da zero. Ad esempio, nella matrice denominata $Red, il valore della decima posizione nella matrice è $Red[9].

Le parentesi quadre possono anche assegnare un tipo a una variabile. Ad esempio, per identificare la variabile denominata $A XML, usare $A=[XML] "<Test><A>value</A></Test>". Sono disponibili i tipi di variabile seguenti: Array, Bool, Byte, Char, Char[], Decimal, FloatDouble, Int, Int[], , Long, , Long[], , RegEx, , Single, ScriptBlock, String, , e TypeXML.
{ } Usare le parentesi graffe per includere un'espressione in un comando. Ad esempio, Get-Process | Where {$_.HandleCount -gt 400}
| Usare il simbolo della pipe per inviare tramite pipe l'output di un comando a un altro comando. Ad esempio, Get-Mailbox -Server SRV1 | Set-Mailbox -ProhibitSendQuota 2GB.
> Usare la parentesi quadra quadra destra per inviare l'output di un comando a un file. Se il file esiste già, il contenuto viene sovrascritto. Ad esempio, Get-TransportRule > "C:\My Documents\TransportRules.txt".
>> Usare parentesi quadre a doppio angolo destro per accodare l'output di un comando a un file esistente. Se il file non esiste, viene creato un nuovo file. Ad esempio, Get-TransportRule >> "C:\My Documents\TransportRules.txt".
" Usare le virgolette doppie per racchiudere le stringhe di testo che contengono spazi. Come descritto in precedenza, le variabili vengono sostituite con i relativi valori effettivi.
$ Il segno di dollaro indica una variabile. Ad esempio, per creare una variabile denominata $Blue con il valore 10, usare $Blue = 10. Dopo aver archiviato la variabile, è possibile usarla come valore di un parametro.
@ Il simbolo at fa riferimento a una matrice associativa. Per altre informazioni, vedere about_Arrays.
$( ) Un segno di dollaro con parentesi indica la sostituzione dei comandi. È possibile utilizzare la sostituzione di un comando quando si desidera utilizzare l'output di un comando come argomento in un altro comando. Ad esempio, Get-ChildItem $(Read-Host -Prompt "Enter FileName: ").
.. I punti doppi indicano un intervallo di valori. Ad esempio, se una matrice contiene diversi indici, è possibile restituire i valori di tutti gli indici tra il secondo e il quinto indice eseguendo il comando : $Blue[2..5].
+ L'operatore segno più aggiunge due valori insieme. Ad esempio, 6 + 6 è uguale a 12.
- L'operatore segno meno sottrae un valore da un altro valore (ad esempio, 12 - 6 è uguale 6a ) o indica un numero negativo (ad esempio, -6 * 6 è uguale -36a ).
* È possibile usare un asterisco per:
  • Stringhe di corrispondenza: ad esempio, Get-User | Where-Object {$_.Department -like 'Sales*'})
  • Moltiplicare i valori numerici: ad esempio, 6 * 6 uguale a 36
  • Ripetere il valore stringa un numero specificato di volte: ad esempio, "Test" * 3 è uguale a TestTestTest
/ Una barra in avanti divide un valore per un altro. Ad esempio, 6 / 6 è uguale a 1.
% Il segno di percentuale usa quanto segue:
  • In una valutazione numerica restituisce il resto da un operatore di divisione. Ad esempio, 6 % 4 è uguale a 2.
  • In una pipeline si tratta di una sintassi abbreviata per il cmdlet ForEach-Object . Ad esempio, Import-Csv C:\MyFile.csv | ForEach-Object {Set-Mailbox $_.Identity -Name $_.Name} is the same as Import-Csv C:\MyFile.csv | % {Set-Mailbox $_.Identity -Name $_.Name}.
? Il carattere del punto interrogativo è una sintassi abbreviata per il cmdlet Where-Object . Ad esempio, Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"} is the same as Get-Alias | ? {$_.Definition -eq "Clear-Host"}.