Exchange Server 2007 e Windows PowerShell

Compartilhe:

¬

Exchange Server 2007 e Windows PowerShell

Por Anderson Patricio

¬

O Exchange 2007 possui in√ļmeras funcionalidades novas, e com a parte administrativa n√£o podia ser diferente, a mesma est√° com novas mudan√ßas nesta vers√£o, o antigo ESM (Exchange System Manager) se tornou Exchange Management Console e foi totalmente reescrito e agora utiliza o Windows PowerShell (tamb√©m conhecido como Monad) para gerenciar o Exchange 2007.

Vamos ver aonde cada uma destas novas tecnologias e funcionalidades vem ajudar os administradores de mensageria a realizarem suas tarefas.

Microsoft .NET e .NET Framework

Antes de analisarmos o Exchange 2007 com o Monad é interessante termos o conhecimento sobre as tecnologias .Net Framework e Microsoft .NET.

O Microsoft .NET é a iniciativa da Microsoft de software para conectar informação, pessoas, sistemas e dispositivos. A tecnologia é composta de 4 pilares:

  • .Net Framework que √© utilizado para produzir e rodar softwares, incluindo aplica√ß√Ķes web, aplica√ß√Ķes para dispositivos m√≥veis, integra√ß√£o com protocolos abertas, tais como: XML (Extensible Markup Language), SOAP e HTTP

  • Ferramentas de desenvolvimento (Visual Studio .NET) para maximizar o desenvolvimento de aplica√ß√Ķes com o .NET Framework

  • Conjunto de servidores, incluindo Microsoft Windows Server 2003, Microsoft SQL Server, Microsoft BizTalk Server para integra√ß√£o, execu√ß√£o, opera√ß√£o e gerenciamento de servi√ßos web e aplica√ß√Ķes web

  • Parte cliente, como Windows XP, Windows CE e Microsoft Office XP

Por sua vez o .Net Framework √© um componente do Windows para desenvolvimento e execu√ß√£o da nova gera√ß√£o de aplica√ß√Ķes e servi√ßos web. Atualmente o .NET Framework possui:

  • Suporte a mais de 20 linguagens de desenvolvimento

  • Permite que os desenvolvedores gastem seu tempo desenvolvendo a l√≥gica principal do seu software

  • Torna f√°cil o desenvolvimento de aplica√ß√Ķes

Em suma o .Net Framework √© um conjunto de bibliotecas prontas para os desenvolvedores, onde os mesmos s√≥ precisam instanciar classes e objetos para desenvolver suas aplica√ß√Ķes, tornado o desenvolvimento mais f√°cil e √°gil.

Administrando o Exchange 2007

O Exchange 2007 agora possui 2 formas de administração distintas:

  • GUI (Graphical User Interface): Como ocorre hoje, via interface gr√°fica. No Exchange 2007 o nome da GUI √© Exchange Management Console, mas esta nova console √© muito diferente da anterior e totalmente integrada com o Windows PowerShell.

  • CLI (Command-Line Interface): nesta nova vers√£o podemos administrar o Exchange atrav√©s de linha de comando, utilizando para isto interpretador de comandos Windows PowerShell. Esta nova forma √© conhecida como Exchange Management Shell. Outra grande mudan√ßa foi que o setup do produto tamb√©m pode ser feito via linha de comando, atrav√©s de um utilit√°rio que acompanha o produto.

Arquitetura do Windows PowerShell

A arquitetura do Windows PowerShell é simples, é composta do Windows PowerShell engine que possui sub-componentes (Script and Command Parser, Extended Type Sytem, Cmdlets, Session State e NameSpace Providers), o Windows PowerShell pode ser acesso diretamente via Command Shell, através de interface gráfica MMC Snap-in ou através de outros hosts, quando o acesso é feito via interface gráfica (WinForms) ele possui uma interface chamada Monad Data Provider que vem antes da engine.

O Windows PowerShell além de permitir o controle do Exchange Server 2007, nos permite utilizar outros Providers para termos acesso ao Registro, Sistema de arquivos, Certificados Digitais, Active Directory e etc.. sempre utilizando à mesma nomenclatura de comandos (cmdlets).


Arquitetura do Windows PowerShell

Windows PowerShell (Monad)

O Monad √© um poderoso shell que permite a cria√ß√£o de scripts, o que diferencia ele do tradicional cmd.exe? O Monad √© totalmente baseado em .Net Framework, com isto quando rodamos comandos a partir do mesmo n√£o precisamos ter um execut√°vel para executarmos as tarefas porque ele faz uso das bibliotecas utilizando o .Net Framework, que √© √† base do sistema operacional do Microsoft Windows, para manipular as informa√ß√Ķes.

Como podemos perceber, todas as chamadas da interface gráfica serão feitas para a Engine do Monad, portanto, também poderemos administrar todo o Exchange 2007 a partir da linha de comando.

O Windows PowerShell possui uma nomenclatura para os comandos do Exchange, os comandos s√£o chamados de cmdlets e √© a uni√£o de um verbo (get, new, update, remove, etc..) mais um nome (Mailbox, TransportAgent, ServiceHealth, etc..) podendo ser seguido ou n√£o de par√Ęmetros. Atualmente temos em torno de 350 cmdlets com in√ļmeros par√Ęmetros no Exchange 2007.

Vamos analisar o cmdlet Get-Mailbox que lista as mailbox de determinado servidor, servidor este definido pelo par√Ęmetro -Server seguido do nome do servidor, em nosso exemplo Server1.

 

Abaixo temos alguns verbos e Nomes possíveis no Windows PowerShell:

 

Verbos Nomes Update MailboxDatabase New StorageGroup Get SendConnector Remove TransportAgent Set MobileDevice Add SystemHealth Enable ServiceHealth Mount JournalRule Dismount MAPIConnectivity Disable ContentIndex Test DistributionGroup

 

Uma outra facilidade que o Windows PowerShell nos permite é a possibilidade de utilizar pipes, ou seja, a saída de um comando ser utilizado em outro cmdlet, com isto conseguimos uma flexibilidade através da linha de comando sem a necessidade criar scripts. Exemplo:

Cmdlet Descrição get-mailbox Lista todas mailboxes independente do servidor que estejam get-mailbox | group-object Database A partir do primeiro get-mailbox que lista todas as mailboxes o segundo cmdlet group-object Database apresentará na tela todos os usuários aninhados pela database as quais pertencem

Novo Exchange Management Console

Como vimos na arquitetura do Windows PowerShell¬† o Exchange Management Console faz acesso a engine do Windows PowerShell para mostrar as configura√ß√Ķes e tamb√©m para executar tarefas no Exchange Server.

O Exchange Management Console foi¬† reescrito do zero e √© baseado em WinForms, quando executamos uma tarefa qualquer o mesmo passa cmdlets para a engine do Windows PowerShell para serem executadas, com isto todas as a√ß√Ķes efetuadas via interface gr√°fica podem ser reproduzidas por linha de comando.

E o novo Exchange Management Console agora conta com 4 pain√©is sens√≠veis ao contexto, no primeiro painel temos todas as configura√ß√Ķes de organiza√ß√£o, fun√ß√Ķes dos servidores e o Toolbox que √© um conjunto de ferramentas para aux√≠lio do administrador, este primeiro painel √© chamado de Tree (1). No segundo painel, chamado Result Panel(2) √© o resultado do que √© clicado no painel Tree (1), ou seja, somente informa√ß√Ķes relevantes ao item selecionado. No terceiro painel, chamado Work Pane(3) √© mostrado todos os itens relacionados ao Result Panel(2) e por √ļltimo temos o Action Panel que √© din√Ęmico e sens√≠vel ao contexto, por exemplo quando clicamos em um Storage Group ele mostra op√ß√Ķes cab√≠veis para este item e ele ainda possui tarefas que podem ser executadas em n√≠vel do Result Panel(2), ou seja, ele possui configura√ß√Ķes espec√≠ficas para o Work Panel (3) e a√ß√Ķes para o Result Panel (2).

Bom para quem não conhece, abaixo segue os 4 painéis que falamos anteriormente, ele é baseado no mesmo utilizado atualmente pelo ISA Server 2004.


Nova interface do Exchange Management Console

Agora que j√° conhecemos a nova GUI (Graphical User Interface) do Exchange 2007, sabemos tamb√©m que¬† quando executamos qualquer uma das a√ß√Ķes da interface gr√°fica √© “enviado” um cmdlet do Windows PowerShell para execu√ß√£o da tarefa.

Como o Exchange 2007 pode ser gerenciado totalmente via Exchange Management Shell (linha de comando) toda ação feita via interface gráfica nos é mostrado o cmdlet que foi executado para tal ação. Como mostra a figura abaixo:

 


Exchange System Manager 2007: Os cmdlets utilizados na interface gráfica são visíveis e podem ser copiados através do Ctrl+C.

Conforme o exemplo, quando criamos um novo MailboxStore no Exchange 2007, após a criação é mostrado os dois cmdlets utilizados no processo: o primeiro de criação do mailboxstore (New-MailboxDatabase) e o segundo para montar a mailbox store recentemente criada (Mount-Database).

Fora a visualiza√ß√£o ainda podemos dar um Ctrl+C e o conte√ļdo do Wizard ficar√° em mem√≥ria para posteriormente ser utilizado pelo Administrador para documenta√ß√£o ou ainda para cria√ß√£o de um script para automatizar o processo.

 

Conclus√£o


 

Mostramos como será a integração do Exchange 2007 com o Windows PowerShell, com isto já podemos nos preparar para administrar e implementar o Exchange 2007 utilizando as facilidades que o Windows PowerShell pode nos proporcionar ou ainda continuar utilizando a nossa velha e renovada interface gráfica do Exchange 2007.

 

 

Anderson Patricio
http://www.andersonpatricio.org

Written by Anderson Patricio

Anderson Patricio

Anderson Patricio √© MVP e MCSM (Solutions Master) em Exchange. Ele contribui com a Comunidade Microsoft em diversas √°reas, tais como Artigos, Tutoriais, V√≠deos, Blogs, F√≥rums, revis√£o de livros e apresenta√ß√Ķes para a comunidade Canadense e Brasileira.
Anderson posta regularmente aqui no AndersonPatricio.org, como também no AndersonPatricio.ca e MSExchange.org.
Você pode segui-lo no Twitter , Facebook , e/ou Google+.