Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original.
Tradução
Original

Trabalhando com a saída do comando

 

Aplica-se a:Exchange Server 2013

Tópico modificado em:2015-03-09

Exchange Management Shell oferece vários métodos que você pode usar para formatar a saída do comando. Este tópico discute os seguintes assuntos:

  • Como formatar dados   Controle como os dados que você vê são formatados usando os cmdlets Format-List, Format-Tablee Format-Wide .

  • Como os dados de saída   Determine se os dados estão na janela de console do Shell ou para um arquivo de saída usando os cmdlets Out-Host e Out-File . Um exemplo de script para dados de saída para MicrosoftInternet Explorer está incluído neste tópico.

  • Como filtrar dados   Filtre dados usando um dos seguintes métodos de filtragem:

    • No servidor filtragem, disponível em certos cmdlets.

    • No lado do cliente filtragem, disponível em todos os cmdlets, Canalizando os resultados de um comando para o cmdlet Where-Object .

Para usar a funcionalidade descrita neste tópico, você deve estar familiarizado com os seguintes conceitos:

Se você chamar os cmdlets de formatação no final do pipeline, você pode substituir a formatação para controlar quais dados serão exibidos e como os dados aparecem padrão. Os cmdlets de formatação são Format-List, Format-Tablee Format-Wide. Cada uma tem seu próprio estilo de saída distinct difere de outros cmdlets de formatação.

O cmdlet Format-List pega entrado do pipeline e produz uma lista em colunas vertical de todas as propriedades especificadas de cada objeto. Você pode especificar quais propriedades que você deseja exibir, usando o parâmetro Property . Se o cmdlet Format-List for chamado sem quaisquer parâmetros especificados, todas as propriedades são de saída. O cmdlet Format-List quebra linhas em vez de truncá-los. Um dos usos recomendados para o cmdlet Format-List deve substituir a saída padrão de um cmdlet para que você possa recuperar informações adicionais ou mais direcionadas.

Por exemplo, quando você chama o cmdlet Get-Mailbox , você ver apenas uma quantidade limitada de informações no formato de tabela. Se você canaliza a saída do cmdlet Get-Mailbox para o cmdlet Format-List e adiciona os parâmetros para as informações adicionais ou mais direcionados que você deseja exibir, você pode recuperar a saída desejado.

Você também pode especificar um caractere curinga "*" com um nome de propriedade parcial. Se você incluir um caractere curinga, você pode corresponder a várias propriedades sem precisar digitar o nome de cada propriedade individualmente. Por exemplo, Get-Mailbox | Format-List -Property Email* retorna todas as propriedades que começam com Email.

Os exemplos a seguir mostram as diferentes maneiras que você pode exibir os mesmos dados retornados pelo cmdlet Get-Mailbox .

Get-Mailbox TestUser1

Name                      Alias                ServerName       ProhibitSendQuo
                                                                ta
----                      -----                ----------       ---------------
TestUser1                 TestUser1            mbx              unlimited

Neste exemplo, o cmdlet Get-Mailbox é chamado sem formatação específica para que a saída padrão está no formato de tabela e contém um conjunto de propriedades predeterminado.

Get-Mailbox TestUser1 | Format-List -Property Name,Alias,EmailAddresses

Name           : TestUser1
Alias          : TestUser1
EmailAddresses : {SMTP:TestUser1@contoso.com}

No segundo exemplo, a saída do cmdlet Get-Mailbox é redirecionada para o cmdlet Format-List , juntamente com as propriedades específicas. Como você pode ver, o formato e o conteúdo da saída é significativamente diferente.

Get-Mailbox TestUser1 | Format-List -Property Name, Alias, Email*
Name                      : Test User
Alias                     : TestUser1
EmailAddresses            : {SMTP:TestUser1@contoso.com}
EmailAddressPolicyEnabled : True

No último exemplo, a saída do cmdlet Get-Mailbox é redirecionada para o cmdlet Format-List como no segundo exemplo. No entanto, no último exemplo, um caractere curinga é usado para corresponder a todas as propriedades que começam com Email.

Se mais de um objeto é passado para o cmdlet Format-List , todas as propriedades especificadas para um objeto são exibidas e agrupadas pelo objeto. A ordem de exibição depende do parâmetro padrão para o cmdlet. O parâmetro padrão com mais freqüência é o parâmetro Name ou Identity . Por exemplo, quando o cmdlet Get-Childitem é chamado, a ordem de exibição padrão é nomes de arquivo em ordem alfabética. Para alterar esse comportamento, você deve chamar o cmdlet Format-List , junto com o parâmetro GroupBy e o nome de um valor de propriedade pela qual deseja agrupar a saída. Por exemplo, o comando a seguir lista todos os arquivos em um diretório e agrupa esses arquivos com a extensão.

Get-Childitem | Format-List Name,Length -GroupBy Extension

    Extension: .xml

Name   : Config_01.xml
Length : 5627

Name   : Config_02.xml
Length : 3901


    Extension: .bmp

Name   : Image_01.bmp
Length : 746550

Name   : Image_02.bmp
Length : 746550


    Extension: .txt

Name   : Text_01.txt
Length : 16822

Name   : Text_02.txt
Length : 9835

Neste exemplo, o cmdlet Format-List tiver agrupado os itens pela propriedade Extension que é especificada pelo parâmetro GroupBy . Você pode usar o parâmetro GroupBy com qualquer propriedade válida para os objetos no fluxo de pipeline.

O cmdlet Format-Table lhe permite exibir itens em um formato de tabela com cabeçalhos de rótulo e colunas de dados de propriedade. Por padrão, a vários cmdlets, como os cmdlets Get-Process e Get-Service , use o formato de tabela para saída. Parâmetros do cmdlet Format-Table incluem os parâmetros Properties e GroupBy . Esses parâmetros funcionam exatamente como com o cmdlet Format-List .

O cmdlet Format-Table também usa o parâmetro Wrap . Este parâmetro habilita longas linhas de informações de propriedade para exibir completamente em vez de truncar no final de uma linha. Para ver como o parâmetro Wrap é usado para exibir as informações retornadas, compare a saída do comando Get-Command nos dois exemplos a seguir.

Neste exemplo, quando o cmdlet Get-Command é usado para exibir informações de comando sobre o cmdlet Get-Process , as informações para a propriedade Definition serão truncadas.

Get-Command Get-Process | Format-Table Name,Definition

Name                                    Definition
----                                    ----------
get-process                             get-process [[-ProcessName] String[]...

No segundo exemplo, o parâmetro Wrap é adicionado ao comando para forçar a todo o conteúdo da propriedade Definition para exibir.

Get-Command Get-Process | Format-Table Name,Definition -Wrap

Get-Process                             Get-Process [[-Name] <String[]>] [-Comp
                                        uterName <String[]>] [-Module] [-FileVe
                                        rsionInfo] [-Verbose] [-Debug] [-ErrorA
                                        ction <ActionPreference>] [-WarningActi
                                        on <ActionPreference>] [-ErrorVariable
                                        <String>] [-WarningVariable <String>] [
                                        -OutVariable <String>] [-OutBuffer <Int
                                        32>]
                                        Get-Process -Id <Int32[]> [-ComputerNam
                                        e <String[]>] [-Module] [-FileVersionIn
                                        fo] [-Verbose] [-Debug] [-ErrorAction <
                                        ActionPreference>] [-WarningAction <Act
                                        ionPreference>] [-ErrorVariable <String
                                        >] [-WarningVariable <String>] [-OutVar
                                        iable <String>] [-OutBuffer <Int32>]
                                        Get-Process [-ComputerName <String[]>]
                                        [-Module] [-FileVersionInfo] -InputObje
                                        ct <Process[]> [-Verbose] [-Debug] [-Er
                                        rorAction <ActionPreference>] [-Warning
                                        Action <ActionPreference>] [-ErrorVaria
                                        ble <String>] [-WarningVariable <String
                                        >] [-OutVariable <String>] [-OutBuffer
                                        <Int32>]

Como com o cmdlet Format-List , você também pode especificar um curinga caractere "*" com um nome de propriedade parcial. Ao incluir um caractere curinga, você pode corresponder a várias propriedades sem digitar o nome de cada propriedade individualmente.

O cmdlet Format-Wide fornece um controle de saída muito mais simples do que os outros cmdlets de formato. Por padrão, o cmdlet Format-Wide tenta exibir o mesmo número de colunas de valores de propriedade possível em uma linha de saída. Adicionando parâmetros, você pode controlar o número de colunas e como o espaço de saída é usado.

O uso de forma mais básico, em chamar o cmdlet Format-Wide sem quaisquer parâmetros organiza o mesmo número de colunas mais adequado para a página de saída. Por exemplo, se você executar o cmdlet Get-Childitem e pipe sua saída para o cmdlet Format-Wide , você verá a exibição das informações a seguir:

Get-ChildItem | Format-Wide

    Directory: FileSystem::C:\WorkingFolder

Config_01.xml                           Config_02.xml
Config_03.xml                           Config_04.xml
Config_05.xml                           Config_06.xml
Config_07.xml                           Config_08.xml
Config_09.xml                           Image_01.bmp
Image_02.bmp                            Image_03.bmp
Image_04.bmp                            Image_05.bmp
Image_06.bmp                            Text_01.txt
Text_02.txt                             Text_03.txt
Text_04.txt                             Text_05.txt
Text_06.txt                             Text_07.txt
Text_08.txt                             Text_09.txt
Text_10.txt                             Text_11.txt
Text_12.txt

Geralmente, chamar o cmdlet Get-Childitem sem quaisquer parâmetros exibe os nomes de todos os arquivos no diretório em uma tabela de propriedades. Neste exemplo, ao canalizar a saída do cmdlet Get-Childitem para o cmdlet Format-Wide , a saída foi exibida nas duas colunas de nomes. Observe que o tipo de apenas uma propriedade pode ser exibido ao mesmo tempo, especificada por um nome de propriedade que segue o cmdlet Format-Wide . Se você adicionar o parâmetro Autosize , a saída é alterada de duas colunas para o mesmo número de colunas pode se ajustar à largura da tela.

Get-ChildItem | Format-Wide -AutoSize

    Directory: FileSystem::C:\WorkingFolder

Config_01.xml   Config_02.xml   Config_03.xml   Config_04.xml   Config_05.xml
Config_06.xml   Config_07.xml   Config_08.xml   Config_09.xml   Image_01.bmp
Image_02.bmp    Image_03.bmp    Image_04.bmp    Image_05.bmp    Image_06.bmp
Text_01.txt     Text_02.txt     Text_03.txt     Text_04.txt     Text_05.txt
Text_06.txt     Text_07.txt     Text_08.txt     Text_09.txt     Text_10.txt
Text_11.txt     Text_12.txt

Neste exemplo, a tabela é organizada em colunas de cinco, em vez de duas colunas. O parâmetro Column oferece mais controle permitindo que você especifique o número máximo de colunas para exibir informações da seguinte maneira:

Get-ChildItem | Format-Wide -Column 4

    Directory: FileSystem::C:\WorkingFolder

Config_01.xml       Config_02.xml       Config_03.xml       Config_04.xml
Config_05.xml       Config_06.xml       Config_07.xml       Config_08.xml
Config_09.xml       Image_01.bmp        Image_02.bmp        Image_03.bmp
Image_04.bmp        Image_05.bmp        Image_06.bmp        Text_01.txt
Text_02.txt         Text_03.txt         Text_04.txt         Text_05.txt
Text_06.txt         Text_07.txt         Text_08.txt         Text_09.txt
Text_10.txt         Text_11.txt         Text_12.txt

Neste exemplo, o número de colunas é forçado para quatro usando o parâmetro Column .

O cmdlet Out-Host é um cmdlet invisíveis padrão no final do pipeline. Afinal formatação é aplicada, o cmdlet Out-Host envia a saída final para a janela do console para exibição. Você não precisa chamar explicitamente o cmdlet Out-Host , porque ele é a saída padrão. Você pode substituir enviando a saída para a janela do console chamando o cmdlet Out-File como o último cmdlet no comando. O cmdlet Out-File grava a saída para o arquivo especificado no comando como no exemplo a seguir:

Get-ChildItem | Format-Wide -Column 4 | Out-File c:\OutputFile.txt

Neste exemplo, o cmdlet Out-File grava as informações exibidas no comando Get-ChildItem | Format-Wide -Column 4 em um arquivo chamado OutputFile.txt. Você também pode redirecionar a saída de pipeline para um arquivo usando o operador de redirecionamento, que é o colchete de ângulo direito ( > ). Para acrescentar o pipeline de saída de um comando para um arquivo existente sem substituir o arquivo original, use os double direita-colchetes angulares ( >> ), como no exemplo a seguir:

Get-ChildItem | Format-Wide -Column 4 >> C:\OutputFile.txt

Neste exemplo, a saída do cmdlet Get-Childitem é redirecionada para o cmdlet Format-Wide para formatação e, em seguida, é gravada até o final do arquivo OutputFile.txt . Observe que, se o arquivo OutputFile.txt não existir, o uso dos colchetes ângulo direito duplos ( >> ) criará o arquivo.

For more information about pipelines, see O pipelining.

For more information about the syntax used in the previous examples, see Sintaxe.

Devido a flexibilidade e a facilidade de script em Exchange Shell de gerenciamento, pode levar os dados retornados pelo comandos e o formato e retorná-los maneiras praticamente ilimitadas.

O exemplo a seguir mostra como você pode usar um script simples para os dados retornados por um comando de saída e exibi-la no Internet Explorer. Esse script usa os objetos são passados através do pipeline, que abre uma janela de Internet Explorer e, em seguida, exibe os dados em Internet Explorer:

$Ie = New-Object -Com InternetExplorer.Application
$Ie.Navigate("about:blank")
While ($Ie.Busy) { Sleep 1 }
$Ie.Visible = $True
$Ie.Document.Write("$Input")
# If the previous line doesn't work on your system, uncomment the line below.
# $Ie.Document.IHtmlDocument2_Write("$Input")
$Ie

Para usar esse script, salve-o para o diretório C:\Program Files\Microsoft\Exchange Server\V15\Scripts no computador onde o script será executado. Nome do arquivo Out-Ie.ps1. Depois de salvar o arquivo, você pode usar o script como um cmdlet regular.

ObservaçãoObservação:
To run scripts in Exchange 2013, scripts must be added to an unscoped management role and you must be assigned the management role either directly or through a management role group. For more information, see Entendendo as Funções de Gerenciamento.

O script Out-Ie pressupõe que os dados que recebe HTML válido. Para converter os dados que você deseja exibir em HTML, você deve canalizar os resultados do comando para o cmdlet ConvertTo-Html . Você pode então canalizamos os resultados desse comando no script Out-Ie . O exemplo a seguir mostra como exibir uma listagem em uma janela Internet Explorer de diretório:

Get-ChildItem | Select Name,Length | ConvertTo-Html | Out-Ie

O Shell fornece acesso a uma grande quantidade de informações sobre os servidores, caixas de correio, Active Directory e outros objetos em sua organização. Embora o acesso a essas informações ajuda você a compreender melhor seu ambiente, esta quantidade de informações pode ser cansativo. O Shell permite controlar essas informações e retornar apenas os dados que você deseja ver usando o recurso de filtragem. Os seguintes tipos de filtragem estão disponíveis:

  • Filtragem do lado do servidor   A filtragem do lado do servidor leva o filtro que você especificar na linha de comando e envia para o servidor de Exchange que você consulta. Nesse servidor processa a consulta e retorna apenas os dados que corresponda ao filtro que você especificou.

    Filtragem do lado do servidor é executada somente em objetos onde dezenas ou centenas de milhares de resultados podem ser retornadas. Portanto, somente os cmdlets de gerenciamento de destinatários, como o cmdlet Get-Mailbox e cmdlets de gerenciamento de fila, como o cmdlet Get-Queue , suporte a filtragem do lado do servidor. Esses cmdlets oferecem suporte para o parâmetro Filter . Este parâmetro leva a expressão de filtro que você especificar e envia para o servidor para processamento.

  • Filtragem de cliente   Filtragem de cliente é executada nos objetos na janela do console local no qual você está trabalhando. Quando você usa a filtragem do lado do cliente, o cmdlet recupera todos os objetos que correspondem à tarefa que você está executando na janela do console local. O Shell, em seguida, leva todos os resultados retornados, aplica o filtro do lado do cliente desses resultados e retorna a você somente os resultados que coincidem com o filtro. Todos os cmdlets suporte a filtragem do lado do cliente. Isso é invocado, Canalizando os resultados de um comando para o cmdlet Where-Object .

A implementação de filtragem do lado do servidor é específica para o cmdlet no qual ela é suportada. Filtragem do lado do servidor é ativado somente em propriedades específicas nos objetos que são retornados. Para obter mais informações, consulte a Ajuda para os seguintes cmdlets:

 

Get-ActiveSyncDevice

Get-ActiveSyncDeviceClass

Get-CASMailbox

Get-Contact

Get-DistributionGroup

Get-DynamicDistributionGroup

Get-Group

Get-Mailbox

Get-MailboxStatistics

Get-MailContact

Get-MailPublicFolder

Get-MailUser

Get-Message

Get-MobileDevice

Get-Queue

Get-QueueDigest

Get-Recipient

Get-RemoteMailbox

Get-RoleGroup

Get-SecurityPrincipal

Get-StoreUsageStatistics

Get-UMMailbox

Get-User

Get-UserPhoto

Remove-Message

Resume-Message

Resume-Queue

Retry-Queue

Suspend-Message

Suspend-Queue

Filtragem de cliente pode ser usada com qualquer cmdlet. Esse recurso inclui aqueles cmdlets que também oferece suporte à filtragem do lado do servidor. Conforme descrito anteriormente neste tópico, a filtragem do cliente aceita todos os dados que são retornados por um comando anterior no pipeline e, em Ativar, retorna somente os resultados correspondentes ao filtro que você especificar. O cmdlet Where-Object realiza a filtragem. Ele pode ser abreviado como Where.

Conforme os dados passam através do pipeline, o cmdlet Where recebe os dados do objeto anterior e, depois, filtra os dados antes de passá-la para o próximo objeto. A filtragem é baseada em um bloco de script que é definido no comando Where . O bloco de script filtra dados com base em valores e propriedades do objeto.

O cmdlet Clear-Host é usado para limpar a janela do console. Neste exemplo, você pode encontrar todos os aliases definidos para o cmdlet Clear-Host se você executar o seguinte comando:

Get-Alias | Where {$_.Definition -eq "Clear-Host"}

CommandType     Name                            Definition
-----------     ----                            ----------
Alias           clear                           clear-host
Alias           cls                             clear-host

O cmdlet Get-Alias e o comando Where trabalham juntos para retornar a lista de aliases que são definidos para o cmdlet Clear-Host e não há outros cmdlets. A tabela a seguir descreve cada elemento do comando Where que é usado no exemplo.

Elementos de página onde command

Elemento Descrição

{ }

Chaves coloque o bloco de script que define o filtro.

$_

Essa variável especial automaticamente inicia e vincula aos objetos no pipeline.

Definição

A propriedade Definition é a propriedade dos objetos pipeline atual que armazena o nome da definição de alias. Quando Definition é usado com a variável $_ , um período vem antes do nome da propriedade.

-eq

Este operador de comparação para "igual a" é usado para especificar que os resultados devem corresponder exatamente o valor da propriedade fornecido na expressão.

"Clear-Host"

Neste exemplo, "Clear-Host" é o valor para o qual o comando é análise.

No exemplo, os objetos que são retornados pelo cmdlet Get-Alias representam todos os aliases definidos no sistema. Embora você não vi-los da linha de comando, os aliases são coletados e passados para o cmdlet Where através do pipeline. O cmdlet Where usa as informações no bloco de script para aplicar um filtro aos objetos alias.

The special variable $_represents the objects that are being passed. The $_variable is automatically initiated by the Shell and is bound to the current pipeline object. For more information about this special variable, see Variáveis do shell.

Using standard "dot" notation (object.property), the Definition property is added to define the exact property of the object to evaluate. The -eq comparison operator then compares the value of this property to "Clear-Host". Only the objects that have the Definition property that match this criterion are passed to the console window for output. For more information about comparison operators, see Operadores de comparação.

Depois que o comando Where tem filtrado os objetos retornados pelo cmdlet Get-Alias , você pode canalizar os objetos filtrados para um outro comando. O próximo comando processa somente os objetos filtrados retornados pela Where command.

 
Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2015 Microsoft