Microsoft Exchange Server 2010: Familiarize-se com o Shell de gerenciamento do Exchange

O Shell de Gerenciamento do Exchange proporciona total controle sobre todos os aspectos da infraestrutura do seu Exchange e é fornecido pelo Windows PowerShell.

Extraído "Exchange 2010 – A prática abordagem," publicado pela Red Gate livros (2009).

Jaap Wesselius

O Shell de gerenciamento do Exchange (EMS) é uma interface de gerenciamento completo com o qual você pode gerenciar todos os aspectos de uma organização do Exchange. O EMS é a interface de gerenciamento primário. O Console de Gerenciamento do Exchange (EMC) é criado "na"parte superior dela. Cada ação tomada no EMC é traduzida dinamicamente em uma linha de comando EMS e executada.

Nos bastidores, o EMS usa Windows PowerShell 2.0. Combinado com os recursos de gerenciamento remoto do Windows Server 2008 e Windows Server 2008 R2, você pode gerenciar remotamente seu ambiente Exchange. O EMS é realmente um superconjunto dos comandos construída sobre Windows PowerShell.

Além da interface de linha de comando, Windows PowerShell 2.0 também tem um ambiente integrado de script, que é uma GUI integrada. Você pode usar isso para criar facilmente scripts Windows PowerShell. Ele também está integrado com gerenciamento remoto do Windows, portanto, você pode usar Windows PowerShell para gerenciar remotamente o seu ambiente Exchange 2010 usando o protocolo HTTPS padrão. Você só precisa de uma estação de trabalho ou em um servidor executando o Windows PowerShell 2.0.

Acionar o Shell

Quando o EMS é iniciado, você verá uma caixa vazia com apenas um prompt de comando basicamente — exatamente como o prompt de comando do Windows. Você pode obter uma lista dos comandos disponíveis nesse estágio, inserindo o Get-Command.

Para o benefício desses administradores apesar de GUI, um comando Windows PowerShell consiste em duas partes: um substantivo e um verbo. Verbos podem ser instruções como get, set, novo, remover, habilitar, desabilitar e assim por diante. O componente do substantivo pode ser qualquer objeto no Exchange Server. Basta combine o substantivo e o verbo como este:

  • Get-ExchangeServer: recuperar uma lista de todos os servidores do Exchange 2010 na organização.
  • Set-MailboxDatabase: definir uma propriedade em um banco de dados de caixa de correio.
  • New-Mailbox: criar um novo usuário habilitado para caixa de correio.
  • Remover-Mailbox: excluir um objeto de usuário e sua caixa de correio.

Se você estiver familiarizado com a Windows PowerShell e deseja saber mais sobre os comandos, uma pesquisa rápida da Web ficará up pontuações de recursos de aprendizado. Você também pode iniciar após o Windows PowerShell colunas no TechNet.

Ajuda de EMS

Se houver algo sobre o qual você não tiver certeza, ao usar o EMS, verifique o guia de referência rápida. Ele está localizado em c:\Arquivos de Files\Microsoft\ExchangeServer\v14\bin\en\ExQuick.htm. Isso contém cmdlets mais importantes e mais utilizadas e suas variáveis.

Se você precisar de ajuda imediatamente, você pode usar a função de ajuda interna no EMS. Para obter uma lista de todos os itens de ajuda disponíveis, basta digitar "help *". Se você precisar de ajuda sobre um cmdlet específico, basta digite o nome do cmdlet e ajuda. Para obter ajuda sobre como habilitar email de um usuário existente, por exemplo, basta digite "ajuda a habilitar caixas de correio".

O pipelining

Outro excelente recurso no Windows PowerShell e EMS é o pipelining. Ele utiliza a saída de um cmdlet como entrada para um segundo. Isso pode reduzir drasticamente a quantidade de trabalho, que você precisa colocar realizar tarefas relativamente complexas. Ele é limitado apenas pela sua criatividade.

Por exemplo, se você quiser mover todas as caixas de correio em um banco de dados de caixa de correio chamado "Mailbox Database 1988197524" para outro banco de dados de caixa de correio chamado "0823751426 de banco de dados de caixa de correio", use o seguinte comando:

Get-Mailbox –Database "Mailbox Database 1988197524" | New-MoveRequest –TargetDatabase "Mailbox Database 0823751426"

Este é o que acontece:

"Banco de dados da caixa de correio 1988197524" de –Database de Get-Mailbox recupera uma lista de todas as caixas de correio neste banco de dados específico. A saída desse cmdlet é usada como a entrada do cmdlet segundo — a solicitação on-line para mover caixas de correio para outro banco de dados. Você também pode usar consultas mais específicas. Por exemplo, para obter uma lista de todas as caixas de correio cujo nome começa com "Chris", você usaria o seguinte comando:

Get-Mailbox | where-object {$_. name –like "Chris*"}

Em seguida, você pode usar isso como entrada para uma solicitação para mover todas essas caixas de correio para outro banco de dados:

Get-Mailbox | where-object {$_. name –like "Chris*"} | New-MoveRequest ' –TargetDatabase "Mailbox Database 0823751426"

Criação de usuários em massa

Isso pode ser muito úteis, particularmente quando você precisa criar muitas caixas de correio com pressa. Suponha que você tenha uma unidade organizacional (UO) chamada "Sales" no Active Directory, que contém 100 objetos de usuário. Esse comando irá criar uma caixa de correio para cada usuário nessa UO:

Get-User –OrganizationalUnit "Sales" | Enable-Mailbox –Database "Mailbox Database 0823751426"

Quando há várias UOs chamados "Vendas", você deve especificar o caminho completo da unidade Organizacional que deseja usar:

Get-User –OrganizationalUnit "E14.local/Account/Sales" | Enable-Mailbox –Database "Mailbox Database 0823751426"

Você também pode filtrar a saída do comando Get-User com o parâmetro – Filter. Por exemplo, para habilitar a caixa de correio todos os usuários cujo atributo de empresa está definido como "Inframan", digite o seguinte comando:

Get-User –Filter {(Company –eq "Inframan")} | Enable-Mailbox –Database "Mailbox Database 0823751426"

Se você quiser ser ainda mais específicas — por exemplo, para habilitar a caixa de correio todos os usuários cujo atributo de empresa está definido como "Inframan" e cujo atributo department é definido como "Estagiários" — digite o seguinte comando:

Get-User –Filter {(Company –eq "Inframan") -AND (Department –eq "Intern")} | Enable-Mailbox –Database "Mailbox Database 0823751426"

As operações a seguir estão disponíveis para a opção – Filter:

  • - e
  • - ou
  • -não
  • -eq (igual)
  • -ne (não é igual)
  • -lt (menor que)
  • -gt (maior que)
  • -(comparação de seqüência de caracteres), como
  • -notlike (comparação de seqüência)

Em alguns casos, você encontrará útil para importar uma lista de usuários de um arquivo CSV. Você pode importar esses tipos de listas de outro Active Directory ou até mesmo um aplicativo de recursos humanos. É relativamente fácil importar um arquivo CSV usando Windows PowerShell. A única coisa que você precisa estar atento é que a opção –Password não aceita entrada de texto não criptografado. Você deve converter a entrada para este campo em uma seqüência segura:

$Database="Mailbox Database 1563944384" $UPN="e2010.local" $users = import-csv $args[0] function SecurePassword([string]$password) { $secure = new-object System.Security.SecureString $password.ToCharArray() | % { $secure.AppendChar($_) } return $secure }foreach ($i in $users) { $sp = SecurePassword $i.password $upn = $i.FirstName + "@"+ $upn $display = $i.FirstName + " "+ $i.LastName New-Mailbox -Password $sp -Database $Database -UserPrincipalName $UPN -Name $i.FirstName -FirstName $i.FirstName -LastName $i.LastName -OrganizationalUnit $i.OU }

Nas três primeiras linhas, existem três conjunto de parâmetros. Esses parâmetros são usados durante a criação real do usuário e a caixa de correio. O arquivo é lido em um loop ForEach, e os usuários reais e as caixas de correio são criadas conforme o andamento do loop.

A função SecurePassword lê a senha do arquivo CSV de saída e o converte em uma seqüência segura — que é usado, por sua vez, como a entrada de senha durante a criação dos usuários. O próprio arquivo CSV é formatado como este:

FirstName, LastName, Password, OU Jaap, Wesselius, Pass1word, Accounts Michael, Francis, Pass1word, Accounts Michael, Smith, Pass1word, Accounts John, Doe, Pass1word, Accounts

Para tornar esse script utilizável, salve o arquivo de script, como "create.ps1" em um diretório como c:\scripts. Você também precisará salvar o arquivo de saída CSV como users.csv no mesmo diretório. Para realmente usar o script, abra um prompt de comando Windows PowerShell, navegue até a pasta c:\scripts e digite o seguinte comando:

. \create.ps1 users.csv

Essas técnicas ajudará você a obter o melhor uso do EMS e usar algumas da potência do Windows PowerShell para gerenciar sua infra-estrutura do Exchange.

Jaap Wesselius

Jaap Wesseliusé o fundador da DM consultores, uma empresa com um forte foco em soluções de mensagens e colaboração. Após trabalhar na Microsoft há oito anos, Wesselius decidiu confirmar mais de seu tempo para a comunidade do Exchange na Holanda, resultando em um prêmio MVP de Exchange Server em 2007. Também é colaborador regular em holandês Unified Communications grupo de usuários e um autor regular para simples-Talk.

Saiba mais sobre "Abordagem de práticas do Exchange 2010 – A" em red-gate.com/our-company/about/book-store.

Conteúdo relacionado