Usar o cmdlet de resposta do Shell de Gerenciamento do Exchange

Saiba como usar a resposta de um cmdlet do Shell de Gerenciamento do Exchange em seu aplicativo gerenciado pelo Exchange.

Aplica-se a: Exchange Online | Exchange Server 2013 | Office 365

Cada cmdlet do Shell de Gerenciamento do Exchange retorna uma ou mais instâncias PSObject que fornecem uma exibição consistente de qualquer objeto no ambiente do Shell de Gerenciamento do Exchange. Este artigo fornece informações sobre como usar as propriedades de uma instância PSObject para retornar os valores de propriedade do objeto de API subjacente Exchange Server 2013.

Pré-requisitos para usar respostas de cmdlet

Para usar respostas de cmdlet, você precisa de uma referência ao namespace System.Automation.Management .

Observação

Ao usar o Visual Studio para criar um aplicativo, você deve adicionar uma referência ao assembly System.Mangagement.Automation.dll ao projeto. Você pode encontrar o assembly em um dos seguintes locais:

  • Para sistemas operacionais Windows XP e Windows Vista, o Windows PowerShell de instalação ($PSHOME).
  • Para os sistemas operacionais Windows 7 e Windows 8, a seguinte pasta: Windows\assembly\GAC_MSIL\System.Management.Automation.

Windows PowerShell runspace remoto

O Shell de Gerenciamento do Exchange usa recursos de Windows PowerShell remotos para todos os comandos, até mesmo comandos executados no servidor local. Como resultado, todas as respostas dos cmdlets do Shell do Exchange Management são serializadas XML. Isso significa que, embora o objeto de resposta indique o tipo de objeto Exchange usado para gerar a resposta, o objeto de resposta não pode ser lançado para o tipo de objeto Exchange; Em vez disso, você deve usar o saco de propriedades que é exposto pelo objeto de resposta para obter os valores do tipo de objeto Exchange.

O saco de propriedades no objeto de resposta contém um par de chave/valor para cada propriedade pública ou método no tipo de objeto Exchange. O objeto de resposta contém o nome do tipo de objeto exchange subjacente; você pode usar esse nome para determinar o tipo de objeto Exchange representado pelo objeto de resposta para que você possa extrair a propriedade apropriada. Cada valor no saco de propriedades também inclui informações de tipo para que você possa lançar o valor da propriedade para o tipo gerenciado apropriado.

Usar a resposta do cmdlet

A classe PSObject expõe as três propriedades públicas a seguir que contêm os valores do objeto de API do Exchange 2013 subjacente: propriedades, métodos e membros. Cada propriedade exposta pelo objeto de API do Exchange 2013 tem um par de chave/valor correspondente nas propriedades Propriedades e Membros . Seu aplicativo pode indexar a coleção Propriedades pelo nome de uma propriedade para recuperar o valor da propriedade.

Você pode usar a propriedade TypeNames da instância PSObject para determinar o tipo do objeto exchange subjacente encapsulado pela instância PSObject . A propriedade TypeNames é uma coleção de cadeias de caracteres que contém a hierarquia de objeto do tipo representado. Você pode usar esses nomes para determinar o objeto representado pela instância PSObject para que você possa extrair a propriedade apropriada.

O exemplo de código a seguir usa a resposta de cmdlet para imprimir o conteúdo da coleção Propriedades de uma instância PSObject no console. O exemplo de código requer uma referência ao namespace System.Automation.Management .

foreach (PSPropertyInfo propertyInfo in psObject.Properties)
{
    Console.WriteLine(string.Format("{0}: {1}",
        propertyInfo.Name, propertyInfo.Value);
}

For Each PropertyInfo As PSProperty In ObjectInfo.Properties
    Console.WriteLine(String.Format("{0}: {1}", PropertyInfo.Name, PropertyInfo.Value))
Next

Confira também