Sintaxe cmdlet do Exchange

Os artigos de referência do cmdlet do Exchange usam um método padronizado que descreve os principais aspectos sobre o cmdlet. Por exemplo:

  • Parâmetros disponíveis no cmdlet.
  • Valores que cada parâmetro aceita.
  • Parâmetros que podem ser usados juntos e parâmetros que precisam ser usados separadamente.

Este artigo explica essas convenções e também a sintaxe necessária para executar comandos no Exchange PowerShell.

Convenções de comandos do Exchange PowerShell

A ajuda do Exchange PowerShell segue convenções que indicam o que é necessário ou opcional e como inserir parâmetros e valores ao executar um comando. As convenções de comandos são listadas na tabela a seguir.

Símbolo Descrição
- Um hífen indica um parâmetro. Por exemplo, -Identity.
< > Colchetes angulares indicam os valores possíveis para um parâmetro. Por exemplo, -Location <ServerName> ou -Habilitado <$true | $false>.
[ ] Colchetes indicam parâmetros opcionais e seus valores. Por exemplo: [-WhatIf] ou [-ResultSize <Unlimited>].

Pares de parâmetro-valor que não estão entre colchetes são necessários. Por exemplo, -Password <SecureString>.

Colchetes quadrados ao redor do próprio nome do parâmetro indicam um parâmetro posicional (você pode usar o valor do parâmetro sem especificar o nome do parâmetro) e parâmetros posicionais podem ser necessários ou opcionais.

Por exemplo, Get-Mailbox [[-Identity] <MailboxIdParameter>] significa que o parâmetro Identity é posicional (porque está fechado em colchetes) e opcional (porque todo o par parâmetro-valor está fechado em colchetes), para que você possa usar Get-Mailbox -Identity <MailboxIdParameter> ou Get-Mailbox <MailboxIdParameter>. Da mesma forma, Set-Mailbox [-Identity] <MailboxIdParameter> significa que o parâmetro Identity é posicional (porque está fechado em colchetes) e necessário (porque todo o par de parâmetro-valor não está fechado em colchetes), para que você possa usar Set-Mailbox -Identity <MailboxIdParameter> ou Set-Mailbox <MailboxIdParameter>.
| Símbolos de barra vertical em valores de parâmetros indicam uma escolha entre os valores. Por exemplo, -Habilitado <$true | $false> indica que o parâmetro Habilitado pode ter o valor $true ou $false.

Essas convenções de comandos ajudam a compreender como um comando é construído. Exceto pelo hifen que indica um parâmetro, você não usa esses símbolos como são descritos na tabela quando você executa cmdlets no Exchange PowerShell.

Conjuntos de parâmetros no Exchange PowerShell

Conjuntos de parâmetros são grupos de parâmetros que podem ser usados uns com os outros no mesmo comando. Cada conjunto de parâmetros contém pelo menos um parâmetro que não está disponível nos outros conjuntos de parâmetros, mas os conjuntos de parâmetros normalmente compartilham alguns parâmetros.s.

Muitos cmdlets têm apenas um conjunto de parâmetros, o que significa que todos os parâmetros podem ser usados uns com os outros. Outros cmdlets têm vários conjuntos de parâmetros, o que significa que alguns parâmetros não podem ser usados com outros parâmetros. Por exemplo, suponha que os seguintes conjuntos de parâmetros estejam disponíveis no 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>

Os seguintes parâmetros estão disponíveis no primeiro conjunto de parâmetros, para que você possa usá-los no mesmo comando:

  • DsnCode
  • Interno
  • Idioma
  • Text
  • Confirmar
  • Domaincontroller
  • Whatif

Os seguintes parâmetros estão disponíveis no segundo conjunto de parâmetros, para que você possa usá-los no mesmo comando:

  • QuotaMessageType
  • Idioma
  • Text
  • Confirmar
  • Domaincontroller
  • Whatif

Os parâmetros DsnCode e Interno estão disponíveis apenas no primeiro conjunto de parâmetros. O parâmetro QuotaMessageType está disponível apenas no segundo conjunto de parâmetros. Portanto, você não pode usar os seguintes parâmetros no mesmo comando:

  • DsnCode e QuotaMessageType.
  • Interno e QuotaMessageType.

Os seguintes parâmetros estão disponíveis em ambos os conjuntos de parâmetros, para que você possa usá-los em qualquer comando New-SystemMessage :

  • Idioma
  • Text
  • Confirmar
  • Domaincontroller
  • Whatif

A <CommonParameters> entrada indica que o cmdlet dá suporte aos parâmetros básicos de Windows PowerShell que estão disponíveis em praticamente qualquer cmdlet (por exemplo, Verbose). Você pode usar parâmetros comuns com parâmetros de qualquer conjunto de parâmetros. Para obter mais informações, confira about_CommonParameters.

Aspas no Exchange PowerShell

No Exchange PowerShell, use aspas simples (') ou aspas duplas (") antes e depois de valores de parâmetros que contêm espaços. Por exemplo, os seguintes comandos se comportam da mesma forma:

  • Get-ReceiveConnector -Identity "Contoso Receive Connector"

  • Get-ReceiveConnector -Identity 'Contoso Receive Connector'

Nos exemplos anteriores, se você não incluir o valor em aspas única ou dupla, o comando falhará porque o PowerShell trata cada palavra como um novo argumento (ele acha que Contoso é o valor do parâmetro Identity e Receive é o valor de um parâmetro posicional não especificado). Neste exemplo, o erro se parece com este:

Não é possível encontrar um parâmetro posicional que aceite o argumento 'Receber'

Para valores de texto simples, aspas individuais versus aspas duplas realmente não importam. Mas, a escolha é importante quando as variáveis estão envolvidas:

  • Aspas duplas: as variáveis são substituídas por seus valores reais.
  • Aspas individuais: as variáveis são tratadas literalmente.

Por exemplo, $Server = Mailbox01 resulta na saída a seguir com base em quais aspas você usa:

  • "$Server Exemplo" resulta em Mailbox01 Example.
  • '$Server Exemplo' resulta em $Server Example.

Para obter mais informações sobre variáveis, consulte about_Variables e about_Automatic_Variables.

Caracteres de escape no Exchange PowerShell

Em qualquer linguagem de programação, um caractere de escape é usado para identificar caracteres especiais literalmente, não por sua função normal nessa linguagem. No Exchange PowerShell, quando você inclui uma cadeia de caracteres de texto em aspas duplas, o caractere de escape é o caractere de escape da marca de cotação de volta ( ' ).

Por exemplo, se você quiser a saída The price is $23, insira o valor "O preço é '$23'. O caractere escape é necessário no caractere de sinal de dólar ( $ ) porque $ define variáveis no PowerShell.

Se você incluir a cadeia de caracteres em aspas individuais, o único caractere especial com o qual você precisa se preocupar é o próprio caractere de marca de cotação, que requer duas aspas únicas para escapar ( '' ).

Por exemplo, se você quiser a saída Don't confuse two single quotation marks with a double quotation mark!, insira o valor "Não confunda duas aspas individuais com uma marca de cotação dupla!".

Operadores de comandos no Exchange PowerShell

A tabela a seguir mostra os operadores válidos que podem ser usados em um comando Exchange. Alguns desses símbolos também foram descritos anteriormente na seção Convenções de comandos no Exchange PowerShell. No entanto, esses símbolos têm significados diferentes quando são usados na linha de comando como operadores. Por exemplo, o sinal de subtração é usado para indicar que um parâmetro também pode ser usado em um comando como um operador matemático.

Operador Descrição
= O sinal igual é um caractere de atribuição. O valor no lado direito do sinal igual é atribuído à variável no lado esquerdo do sinal igual (por exemplo, $x= Get-Mailbox). Você também pode usar outros caracteres com o sinal igual:
  • +=: adicione o valor no lado direito do sinal igual ao valor atual contido na variável no lado esquerdo do sinal igual.
  • -=: subtraia o valor no lado direito do sinal igual do valor atual contido na variável no lado esquerdo do sinal igual.
  • *=: Multiplique o valor atual da variável no lado esquerdo do sinal igual pelo valor especificado no lado direito do sinal igual.
  • /=: Divida o valor atual da variável no lado esquerdo do sinal igual pelo valor especificado no lado direito do sinal igual.
  • %=: modifique o valor atual da variável no lado esquerdo do sinal igual pelo valor especificado no lado direito do sinal igual.
: Use um cólon para separar o nome de um parâmetro do valor do parâmetro. Por exemplo, -Enabled:$True. Um separador de cólon funciona e é opcional em praticamente todos os pares de valor de parâmetro. Um separador de cólon é necessário em parâmetros de comutador. Para obter mais informações sobre parâmetros de comutador, consulte about_Parameters.
! O ponto de exclamação é o operador NOT lógico. O par != combinado significa "não igual a".
[ ] Colchetes especificam o valor de índice de uma posição de matriz. Os valores de índice são deslocamentos que sempre começam em zero. Por exemplo, na matriz chamada $Red, o valor da décima posição na matriz é $Red[9].

Colchetes também podem atribuir um tipo a uma variável. Por exemplo, para identificar a variável chamada $A XML, use $A=[XML] "<Test><A>value</A></Test>". Os seguintes tipos de variável estão disponíveis: Array, , Bool, Byte, Char, Char[], DoubleDecimal, Float, Int[]Int, Long, Long[], RegEx, Single, , ScriptBlock, String, , Type, eXML.
{ } Use chaves para incluir uma expressão em um comando. Por exemplo, Get-Process | Where {$_.HandleCount -gt 400}
| Use o símbolo de pipe para canalizar a saída de um comando para outro comando. Por exemplo, Get-Mailbox -Server SRV1 | Set-Mailbox -ProhibitSendQuota 2GB.
> Use o colchete de ângulo direito para enviar a saída de um comando para um arquivo. Se o arquivo já existir, o conteúdo será substituído. Por exemplo, Get-TransportRule > "C:\My Documents\TransportRules.txt".
>> Use colchetes de ângulo direito duplo para acrescentar a saída de um comando a um arquivo existente. Se o arquivo não existir, um novo arquivo será criado. Por exemplo, Get-TransportRule >> "C:\My Documents\TransportRules.txt".
" Use aspas duplas para incluir cadeias de caracteres de texto que contêm espaços. Conforme descrito anteriormente, as variáveis são substituídas por seus valores reais.
$ O sinal de dólar indica uma variável. Por exemplo, para criar uma variável nomeada $Blue com o valor 10, use $Blue = 10. Depois de armazenar a variável, você pode usá-la como o valor de um parâmetro.
@ O símbolo em faz referência a uma matriz associativa. Para obter mais informações, consulte about_Arrays.
$( ) Um sinal de dólar com parênteses indica substituição de comando. Você pode usar a substituição de comando quando quiser usar a saída de um comando como um argumento em outro comando. Por exemplo, Get-ChildItem $(Read-Host -Prompt "Enter FileName: ").
.. Pontos duplos indicam um intervalo de valores. Por exemplo, se uma matriz contiver vários índices, você poderá retornar os valores de todos os índices entre o segundo e o quinto índices executando o comando: $Blue[2..5].
+ O operador de sinal de adição adiciona dois valores juntos. Por exemplo, 6 + 6 é igual a 12.
- O operador de sinal de menos subtrai um valor de outro valor (por exemplo, 12 - 6 igual 6a ) ou indica um número negativo (por exemplo, -6 * 6 igual a -36).
* Você pode usar um asterisco para:
  • Corresponder cadeias de caracteres: por exemplo, Get-User | Where-Object {$_.Department -like 'Sales*'})
  • Multiplicar valores numéricos: por exemplo, 6 * 6 é igual a 36
  • Repita o valor da cadeia de caracteres um número especificado de vezes: por exemplo, "Test" * 3 é igual a TestTestTest
/ Uma barra para a frente divide um valor por outro. Por exemplo, 6 / 6 é igual a 1.
% O sinal de porcentagem tem os seguintes usos:
  • Em uma avaliação numérica, ele retorna o restante de um operador de divisão. Por exemplo, 6 % 4 é igual a 2.
  • Em um pipeline, é abreviação para o cmdlet ForEach-Object . Por exemplo, 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}.
? O caractere de ponto de interrogação é abreviação para o cmdlet Where-Object . Por exemplo, Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"} is the same as Get-Alias | ? {$_.Definition -eq "Clear-Host"}.