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