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>.

Si el propio nombre del parámetro se incluye entre corchetes, esto indica que el parámetro es un parámetro posicional (puede usar el valor del parámetro sin especificar el 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. A excepción del guión que indica un parámetro, estos símbolos no se usan como están descritos en la tabla cuando se ejecutan 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. Aunque los conjuntos de parámetros suelen compartir algunos parámetros, cada conjunto de parámetros contiene al menos un parámetro que no está disponible en los demás conjuntos de parámetros y no se puede usar con algunos de los parámetros de distintos conjuntos de parámetros.

Muchos cmdlets solo tienen un conjunto de parámetros, lo que significa que todos los parámetros disponibles se pueden usar juntos. Otros cmdlets tienen varios conjuntos de parámetros, lo que indica que algunos parámetros realizan funciones que son incompatibles 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] <COMMON PARAMETERS>

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

Este cmdlet tiene dos conjuntos de parámetros independientes. En función de las entradas, puede usar estos parámetros juntos en el mismo comando:

  • DsnCode
  • Interna
  • Language
  • Text
  • Confirmar
  • DomainController
  • WhatIf

Además, puede usar estos parámetros juntos en el mismo comando:

  • Language
  • QuotaMessageType
  • Text
  • Confirmar
  • DomainController
  • WhatIf

Pero no puede usar estos parámetros juntos en el mismo comando:

  • DsnCode y QuotaMessageType.
  • Internal y QuotaMessageType.

La <COMMON PARAMETERS> entrada indica que el cmdlet admite los parámetros básicos de Windows PowerShell que están disponibles en prácticamente cualquier cmdlet (por ejemplo, Depurar). 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'

Si no incluye el valor Contoso Receive Connector entre comillas, Exchange PowerShell intenta tratar cada palabra como un nuevo argumento y se producirá un error en el comando. En este ejemplo, recibirá un error con este aspecto:

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

Si el valor contiene variables, debe elegir cuidadosamente entre comillas simples y comillas dobles. Por ejemplo, supongamos que tiene una variable denominada $Server que tiene el valor Mailbox01.

  • Comillas dobles: las variables se sustituyen por sus valores. Por ejemplo, si la variable $Server tiene el valor Mailbox01, la entrada "ejemplo $Server" da como resultado la salida Mailbox01 Example.

  • Comillas simples: las variables se tratan literalmente. La entrada "ejemplo de $Server" da como resultado la salida $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 se utiliza como carácter de asignación. El valor del lado derecho del signo igual se asigna a la variable del lado izquierdo. Los siguientes caracteres también son de asignación:
  • +=: 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.
: Se puede usar el carácter de dos puntos para separar el nombre de un parámetro de su valor. Por ejemplo, -Enabled:$True. El uso del carácter de dos puntos es opcional en todos los tipos de parámetros, excepto en los parámetros de modificador. Para obtener más información sobre los parámetros de conmutador, consulte about_Parameters.
! El signo de exclamación es un operador NOT lógico. Cuando se usa con el signo igual ( = ), el par combinado (!=) significa "no igual a".
[ ] Los corchetes se usan para especificar el valor de índice de una posición de matriz. Los valores de índice son desplazamientos que empiezan en cero. Por ejemplo, $Red[9] hace referencia a la décima posición de índice de la matriz, $Red.

También se pueden usar corchetes para asignar un tipo a una variable (por ejemplo, $A=[XML] "<Test><A>value</A></Test>"). Están disponibles los siguientes tipos de variables: Array, , , Byte``Char, Char[], Decimal, , Float``Double, Int, Int[], Long``Long[], RegEx, Single, ScriptBlock, String, Typey Bool``XML.

{ } Las llaves se usan para incluir una expresión en un comando. Por ejemplo, Get-Process | Where {$_. HandleCount -gt 400}
| La barra vertical se usa cuando un cmdlet canaliza un resultado a otro cmdlet. Por ejemplo, Get-Mailbox -Server SRV1 | Set-Mailbox -ProhibitSendQuota de 2 GB.
> El corchete angular de cierre se usa para enviar la salida de un comando a un archivo, y el contenido del archivo se sobrescribe. Por ejemplo, Get-TransportRulePredicate > "C:\My Documents\Output.txt".
>> Los corchetes angulares de cierre dobles se usan para adjuntar la salida de un comando a un archivo existente. Si el archivo no existe, se crea uno. Por ejemplo, Get-TransportRulePredicate >> "C:\My Documents\Output.txt".
" Las comillas dobles se usan para delimitar cadenas de texto que contienen espacios.
$ El signo de dólar indica una variable. Por ejemplo, $Blue = 10 asigna el valor 10 a la variable $Blue.
@ El símbolo @ 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"}.