Sintaxis del cmdlet de Exchange

Los artículos de referencia de cmdlets de Exchange usan un método estandarizado que describe aspectos clave sobre el cmdlet. Por ejemplo:

  • Parámetros que están disponibles en el cmdlet .
  • Valores que acepta cada parámetro.
  • Parámetros que se pueden usar juntos y parámetros que deben usarse por separado.

En este artículo se explican estas convenciones y también la sintaxis necesaria para ejecutar comandos en Exchange PowerShell.

Convenciones de comandos en Exchange PowerShell

La ayuda de Exchange PowerShell sigue convenciones que indican lo que es obligatorio y lo que es opcional, así como la manera de especificar parámetros y valores al ejecutar un comando. En la tabla siguiente se enumeran estas convenciones de comandos.

Símbolo Descripción
- Un guión indica un parámetro. Por ejemplo, -Identity.
< > Los corchetes angulares indican los valores posibles de un parámetro. Por ejemplo, -Location <ServerName> o -Enabled <$true | $false>.
[ ] Los corchetes indican parámetros opcionales y sus valores. Por ejemplo, [-WhatIf] o [-ResultSize <Unlimited>].

Es necesario que haya pares parámetro-valor que no estén entre corchetes. Por ejemplo, -Password <SecureString>.

Los corchetes alrededor del propio nombre del parámetro indican un parámetro posicional (puede usar el valor del parámetro sin especificar el nombre del parámetro) y los parámetros posicionales pueden ser obligatorios u opcionales.

Por ejemplo, Get-Mailbox [[-Identity] <MailboxIdParameter>] significa que el parámetro Identity es posicional (porque está entre corchetes) y opcional (porque todo el par parámetro-valor está entre corchetes), por lo que puede usar Get-Mailbox -Identity <MailboxIdParameter> o Get-Mailbox <MailboxIdParameter>. De forma similar, Set-Mailbox [-Identity] <MailboxIdParameter> significa que el parámetro Identity es posicional (porque está entre corchetes) y es necesario (porque el par parámetro-valor completo no está entre corchetes), por lo que puede usar Set-Mailbox -Identity <MailboxIdParameter> o Set-Mailbox <MailboxIdParameter>.
| La barra vertical en valores de parámetro indica una elección entre valores. Por ejemplo, -Enabled <$true | $false> indica que el parámetro Enabled puede tener el valor $true o $false.

Estas convenciones de comandos le ayudan a entender cómo se construye un comando. Excepto para el guion que indica un parámetro, no se usan estos símbolos como se describen en la tabla al ejecutar cmdlets en Exchange PowerShell.

Conjuntos de parámetros en Exchange PowerShell

Los conjuntos de parámetros son grupos de parámetros que se pueden usar juntos en el mismo comando. Cada conjunto de parámetros contiene al menos un parámetro que no está disponible en los demás conjuntos de parámetros, pero los conjuntos de parámetros suelen compartir algunos parámetros.s.

Muchos cmdlets solo tienen un conjunto de parámetros, lo que significa que todos los parámetros se pueden usar entre sí. Otros cmdlets tienen varios conjuntos de parámetros, lo que significa que algunos parámetros no se pueden usar con otros parámetros. Por ejemplo, supongamos que los siguientes conjuntos de parámetros están disponibles en el 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>

Los parámetros siguientes están disponibles en el primer conjunto de parámetros, por lo que puede usarlos en el mismo comando:

  • DsnCode
  • Interna
  • Language
  • Texto
  • Confirmar
  • DomainController
  • WhatIf

Los parámetros siguientes están disponibles en el segundo conjunto de parámetros, por lo que puede usarlos en el mismo comando:

  • QuotaMessageType
  • Language
  • Texto
  • Confirmar
  • DomainController
  • WhatIf

Los parámetros DsnCode e Internal solo están disponibles en el primer conjunto de parámetros. El parámetro QuotaMessageType solo está disponible en el segundo conjunto de parámetros. Por lo tanto, no puede usar los parámetros siguientes en el mismo comando:

  • DsnCode y QuotaMessageType.
  • Internal y QuotaMessageType.

Los parámetros siguientes están disponibles en ambos conjuntos de parámetros, por lo que puede usarlos en cualquier comando New-SystemMessage :

  • Language
  • Texto
  • Confirmar
  • DomainController
  • WhatIf

La <CommonParameters> entrada indica que el cmdlet admite los parámetros de Windows PowerShell básicos que están disponibles en prácticamente cualquier cmdlet (por ejemplo, Verbose). Puede usar parámetros comunes con parámetros de cualquier conjunto de parámetros. Para más información, consulte about_CommonParameters.

Comillas en Exchange PowerShell

En Exchange PowerShell, se usan comillas simples (') o comillas dobles (") para delimitar los valores de parámetro que contienen espacios. Por ejemplo, los comandos siguientes se comportan de la misma manera:

  • Get-ReceiveConnector -Identity "Contoso Receive Connector"

  • Get-ReceiveConnector -Identity 'Contoso Receive Connector'

En los ejemplos anteriores, si no incluye el valor entre comillas simples o dobles, se produce un error en el comando porque PowerShell trata cada palabra como un nuevo argumento (cree que Contoso es el valor del parámetro Identity y Receive es el valor de un parámetro posicional no especificado). En este ejemplo, el error tiene el siguiente aspecto:

No se encuentra un parámetro posicional que acepte el argumento "Receive"

En el caso de los valores de texto sin formato, las comillas simples frente a las comillas dobles no son realmente importantes. Sin embargo, la elección es importante cuando hay variables implicadas:

  • Comillas dobles: las variables se sustituyen por sus valores reales.
  • Comillas simples: las variables se tratan literalmente.

Por ejemplo, $Server = Mailbox01 da como resultado la siguiente salida en función de las comillas que use:

  • "ejemplo $Server" da como resultado Mailbox01 Example.
  • "$Server ejemplo" da como resultado $Server Example.

Para obtener más información sobre las variables, consulte about_Variables y about_Automatic_Variables.

Caracteres de escape en Exchange PowerShell

En todos los lenguajes de programación, se usan caracteres de escape para identificar los caracteres especiales literalmente, no por su función normal en ese idioma. En Exchange PowerShell, cuando se incluye una cadena de texto entre comillas dobles, el carácter de escape es el carácter de escape de comillas inversas ( ' ).

Por ejemplo, si desea la salida The price is $23, escriba el valor "El precio es '$23'. El carácter de escape es necesario en el carácter de signo de dólar ( $ ) porque $ define variables en PowerShell.

Si incluye la cadena entre comillas simples, el único carácter especial que debe preocuparse es el propio carácter de comillas simples, que requiere dos comillas simples para escapar ( '' ).

Por ejemplo, si desea la salida Don't confuse two single quotation marks with a double quotation mark!, escriba el valor "No confunda dos comillas simples con comillas dobles!".

Operadores de comandos en Exchange PowerShell

En la tabla siguiente se indican los operadores válidos que se pueden usar en un comando de Exchange. Algunos de estos símbolos también se describieron en la sección anterior titulada Convenciones de comandos en Exchange PowerShell. Pero estos símbolos tienen significados diferentes cuando se usan en la línea de comandos como operadores. Por ejemplo, el signo menos que se usa para indicar un parámetro también se puede usar en un comando como operador matemático.

Operador Descripción
= El signo igual es un carácter de asignación. El valor del lado derecho del signo igual se asigna a la variable del lado izquierdo del signo igual (por ejemplo, $x= Get-Mailbox). También puede usar otros caracteres con el signo igual:
  • +=: agregue el valor del lado derecho del signo igual al valor actual contenido en la variable del lado izquierdo del signo igual.
  • -=: reste el valor del lado derecho del signo igual del valor actual contenido en la variable del lado izquierdo del signo igual.
  • *=: multiplique el valor actual de la variable en el lado izquierdo del signo igual por el valor especificado en el lado derecho del signo igual.
  • /=: divida el valor actual de la variable en el lado izquierdo del signo igual por el valor especificado en el lado derecho del signo igual.
  • %=: modifique el valor actual de la variable en el lado izquierdo del signo igual por el valor especificado en el lado derecho del signo igual.
: Use dos puntos para separar el nombre de un parámetro del valor del parámetro. Por ejemplo, -Enabled:$True. Un separador de dos puntos funciona y es opcional en prácticamente todos los pares parámetro-valor. Se requiere un separador de dos puntos en los parámetros del conmutador. Para obtener más información sobre los parámetros de conmutador, consulte about_Parameters.
! El signo de exclamación es el operador NOT lógico. El par != combinado significa "no igual a".
[ ] Los corchetes especifican el valor de índice de una posición de matriz. Los valores de índice son desplazamientos que siempre comienzan en cero. Por ejemplo, en la matriz denominada $Red, el valor de la décima posición de la matriz es $Red[9].

Los corchetes también pueden asignar un tipo a una variable. Por ejemplo, para identificar la variable denominada $A XML, use $A=[XML] "<Test><A>value</A></Test>". Están disponibles los siguientes tipos de variables: Array, , , ByteChar, Char[], Decimal, , FloatDouble, Int, Int[], LongLong[], RegEx, Single, ScriptBlock, String, Typey BoolXML.
{ } Use llaves para incluir una expresión en un comando. Por ejemplo: Get-Process | Where {$_.HandleCount -gt 400}
| Use el símbolo de canalización para canalizar la salida de un comando a otro. Por ejemplo, Get-Mailbox -Server SRV1 | Set-Mailbox -ProhibitSendQuota 2GB.
> Use el corchete angular derecho para enviar la salida de un comando a un archivo. Si el archivo ya existe, el contenido se sobrescribe. Por ejemplo, Get-TransportRule > "C:\My Documents\TransportRules.txt".
>> Use corchetes dobles de ángulo derecho para anexar la salida de un comando a un archivo existente. Si el archivo no existe, se crea uno. Por ejemplo, Get-TransportRule >> "C:\My Documents\TransportRules.txt".
" Use comillas dobles para incluir cadenas de texto que contengan espacios. Como se describió anteriormente, las variables se reemplazan por sus valores reales.
$ El signo de dólar indica una variable. Por ejemplo, para crear una variable denominada $Blue con el valor 10, use $Blue = 10. Después de almacenar la variable, puede usarla como valor de un parámetro.
@ El símbolo at hace referencia a una matriz asociativa. Para obtener más información, consulte about_Arrays.
$( ) Un signo de dólar con paréntesis indica la sustitución de comandos. Puede usar este tipo de sustitución cuando quiera usar la salida de un comando como argumento en otro comando. Por ejemplo, Get-ChildItem $(Read-Host -Prompt "Enter FileName: ").
.. Los puntos dobles indican un intervalo de valores. Por ejemplo, si una matriz contiene varios índices, puede devolver los valores de todos los índices entre el segundo y el quinto índice ejecutando el comando : $Blue[2..5].
+ El operador de signo más agrega dos valores. Por ejemplo, 6 + 6 es igual a 12.
- El operador de signo menos resta un valor de otro valor (por ejemplo, 12 - 6 es igual 6a ) o indica un número negativo (por ejemplo, -6 * 6 es igual -36a ).
* Puede usar un asterisco para:
  • Coincidencia de cadenas: por ejemplo, Get-User | Where-Object {$_.Department -like 'Sales*'})
  • Multiplicar valores numéricos: por ejemplo, 6 * 6 es igual a 36
  • Repita el valor de cadena un número especificado de veces: por ejemplo, "Test" * 3 es igual a TestTestTest
/ Una barra diagonal divide un valor entre otro. Por ejemplo, 6 / 6 es igual a 1.
% El signo de porcentaje tiene los siguientes usos:
  • En una evaluación numérica, devuelve el resto de un operador de división. Por ejemplo, 6 % 4 es igual a 2.
  • En una canalización, es una abreviatura del cmdlet ForEach-Object . Por ejemplo, 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}.
? El carácter de signo de interrogación es una abreviatura para el cmdlet Where-Object . Por ejemplo, Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"} is the same as Get-Alias | ? {$_.Definition -eq "Clear-Host"}.