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 la sintassi necessaria per eseguire comandi in PowerShell per Exchange.

Convenzioni del comando in Exchange PowerShell

La Guida di PowerShell di Exchange segue le convenzioni per indicare le informazioni obbligatorie o facoltative e per le modalità di immissione di parametri e valori quando si esegue un comando. Queste convenzioni dei comandi sono descritte nell'elenco seguente:

  • -: un trattino indica un parametro. Ad esempio, -Identity.
  • < >: le parentesi angolari indicano i valori possibili per un parametro. Ad esempio, -Location <ServerName> o -Enabled <$true | $false>.
  • [ ]: le parentesi quadre indicano i parametri facoltativi e i loro valori. Ad esempio, [-WhatIf] o [-ResultSize <Unlimited>].
    • Le coppie parametro-valore non racchiuse tra parentesi quadre sono obbligatorie. Ad esempio, -Password <SecureString>.
    • Le parentesi quadre attorno al nome del parametro indicano un parametro posizionale in cui è possibile utilizzare il valore del parametro senza specificare il nome del parametro. I parametri posizionali sono obbligatori o facoltativi. Ad esempio:
      • Get-Mailbox [[-Identity] <MailboxIdParameter>] indica che il parametro Identity è:
        • Posizionale perché il parametro è racchiuso tra parentesi quadre.
        • Facoltativo perché l'intera coppia parametro-valore è racchiusa tra parentesi quadre.
        • Quindi, puoi usare Get-Mailbox -Identity <MailboxIdParameter> o Get-Mailbox <MailboxIdParameter>.
      • Set-Mailbox [-Identity] <MailboxIdParameter> indica che il parametro Identity è:
        • Posizionale perché il parametro è racchiuso tra parentesi quadre.
        • Obbligatorio perché l'intera coppia parametro-valore non è racchiusa tra parentesi quadre.
        • Quindi, puoi usare Set-Mailbox -Identity <MailboxIdParameter> o Set-Mailbox <MailboxIdParameter>.
  • |: i simboli di pipe nei valori dei 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, non usare questi simboli come descritti nella tabella quando si eseguono i cmdlet in PowerShell per Exchange.

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 che non è disponibile negli altri set di parametri, ma i set di parametri in genere condividono alcuni parametri.

Molti cmdlet hanno un solo set di parametri, il che significa che tutti i parametri possono essere usati tra loro. 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>

Nel primo set di parametri sono disponibili i seguenti parametri, quindi puoi usarli nello stesso comando:

  • DsnCode
  • Interno
  • Lingua
  • Testo
  • Conferma
  • Controller di dominio
  • WhatIf

Nel secondo set di parametri sono disponibili i seguenti parametri, quindi puoi usarli nello stesso comando:

  • QuotaMessageType
  • Lingua
  • Testo
  • Conferma
  • Controller di dominio
  • 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 puoi quindi usare i parametri seguenti nello stesso comando:

  • DsnCode e QuotaMessageType.
  • Internal e QuotaMessageType.

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

  • Lingua
  • Testo
  • Conferma
  • Controller di dominio
  • WhatIf

La <CommonParameters> voce indica che il cmdlet supporta i parametri di base di Windows PowerShell disponibili praticamente in qualsiasi cmdlet (ad esempio, Verbose). È possibile utilizzare parametri comuni con i 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 non si racchiude il valore tra virgolette singole o doppie, il comando avrà esito negativo perché PowerShell considera ogni parola come un nuovo argomento (pensa che Contoso sia il valore del parametro Identity e Receive sia il valore di un parametro posizionale non specificato). In questo esempio l'errore avrà questo aspetto:

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

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

  • Virgolette doppie: le variabili vengono sostituite con i loro valori effettivi.
  • Virgolette singole: le variabili vengono trattate in modo letterale.

Ad esempio, $Server = Mailbox01 restituisce l'output seguente in base al quale vengono utilizzate le virgolette:

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

Per ulteriori 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 PowerShell di Exchange, quando si racchiude una stringa di testo tra virgolette doppie, il carattere di escape è il carattere di escape delle virgolette posteriori ( ' ).

Ad esempio, se si desidera l'output The price is $23, immettere il valore "Il prezzo è '$23'. Il carattere di escape è necessario sul carattere del segno di dollaro ( $ ) perché $ definisce le variabili in PowerShell.

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

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 una virgoletta doppia!'.

Operatori di comandi in Exchange PowerShell

L'elenco seguente mostra gli operatori validi che è possibile usare in un comando di Exchange. Alcuni di questi simboli sono stati descritti anche nella sezione precedente Convenzioni del comando in Exchange PowerShell. Tuttavia, questi simboli hanno significati diversi se usati come operatori. Il segno meno che indica un parametro può ad esempio essere usato anche come operatore matematico.

  • =: il segno di uguale è un carattere di assegnazione. Il valore a destra del segno di uguale viene assegnato alla variabile a sinistra. Ad esempio, $x = Get-Mailbox. È anche possibile usare altri caratteri con il segno di uguale:

    • +=: aggiunge il valore a destra del segno di uguale al valore corrente nella variabile a sinistra.
    • -=: sottrae il valore sul lato destro del segno di uguale dalla corrente nella variabile sul lato sinistro.
    • *=: moltiplica il valore corrente della variabile sul lato sinistro del segno di uguale per il valore specificato sul lato destro.
    • /=: divide il valore corrente della variabile sul lato sinistro del segno di uguale per il valore specificato sul lato destro.
    • %=: modifica il valore corrente della variabile sul lato sinistro del segno di uguale in base al valore specificato sul lato destro.
  • :: utilizza i due punti per separare il nome di un parametro dal valore del parametro. Ad esempio, -Enabled:$True.

    • Il separatore di due punti funziona ed è facoltativo praticamente in tutte le coppie parametro-valore.
    • Nei parametri di commutazione è necessario un separatore di due punti. Per ulteriori informazioni sui parametri di commutazione, vedere about_Parameters.
  • !: il punto esclamativo è l'operatore logico NOT. La coppia != combinata significa "non uguale a".

  • [ ]: le parentesi quadre specificano il valore indice di una posizione della matrice. I valori di indice sono offset che iniziano sempre da zero. Ad esempio, nell'array denominato $Red, il valore della decima posizione nell'array è $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 variabili seguenti: , , , , DecimalRegExStringIntInt[]LongFloatScriptBlockDoubleLong[]TypeSingleChar[]CharByteBoolArrayXML.

  • { }: utilizza le parentesi graffe per includere un'espressione in un comando. Ad esempio, Get-Process | Where {$_.HandleCount -gt 400}.

  • |: utilizza il simbolo della pipe per reindirizzare l'output di un comando a un altro. Ad esempio, Get-Mailbox -Server SRV1 | Set-Mailbox -ProhibitSendQuota 2GB.

  • >: usa la parentesi angolare 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".

  • >>: usa doppie parentesi angolari rettangolari per aggiungere 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 loro valori effettivi.

  • $: il simbolo di dollaro indica una variabile. Ad esempio, per creare una variabile denominata $Blue con il valore 10, utilizzate $Blue = 10. Dopo aver archiviato la variabile, è possibile usarla come valore di parametro.

  • @: il simbolo della chiocciola fa riferimento a una matrice associativa. Per ulteriori informazioni, vedere about_Arrays.

  • $( ): un simbolo di dollaro tra parentesi indica la sostituzione del comando. È 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 periodi doppi indicano un intervallo di valori. Ad esempio, se una matrice contiene diversi indici, è possibile restituire i valori di tutti gli indici compresi tra il secondo e il quinto indice eseguendo il comando: $Blue[2..5].

  • +: l'operatore del segno più aggiunge due valori. Ad esempio, 6 + 6 è uguale a 12.

  • -: l'operatore del 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 a -36).

  • *: puoi utilizzare un asterisco per le attività seguenti:

    • Stringhe di corrispondenza: Ad esempio, Get-User | Where-Object {$_.Department -like 'Sales*'}).
    • Moltiplica valori numerici: Ad esempio, 6 * 6 è uguale a.36
    • Ripetere il valore stringa per un numero specificato di volte: Ad esempio, "Test" * 3 è uguale a.TestTestTest
  • /: una barra obliqua divide un valore per un altro. Ad esempio, 6 / 6 è uguale a 1.

  • %: il segno di percentuale ha i seguenti usi:

    • In una valutazione numerica, restituisce il resto da un operatore di divisione. Ad esempio, 6 % 4 è uguale a 2.
    • In una pipeline è una forma 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 punto interrogativo è una forma abbreviata per il cmdlet Where-Object . Ad esempio, Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"} è uguale Get-Alias | ? {$_.Definition -eq "Clear-Host"}a .|