Infra - Exchange Server

Alterando vários usuários através do Management Shell

Com este tutorial mostraremos como alterar um grande número de usuários utilizando o Exhange Management Shell.

por Anderson Patricio



Por Anderson Patricio / Jose Rodas

Overview

Uma funcionalidade não encontrada nas versões anteriores é capacidade de alterarmos vários usuários ao mesmo tempo sem a utilização de scripts em vbs e nada do gênero.

Solução

O Exchange Management Shell permite a utilização de pipes, ou seja, podemos trabalhar com a saída de um comando com outro cmdlet em memória, isto facilita o trabalho do administrador. Neste artigo vamos ver alguns casos que conseguimos alterar vários atributos de usuários utilizando pesquisas no PowerShell.

Como alterar o envio máximo dos usuários para 5MB?

Isto fica muito fácil no Exchange Management Console, primeiro temos dois cmdlets para fazer este processo get-mailbox que vai listar todos os usuários e Set-Mailbox onde passamos o parâmetro e valor para alterar determinado usuário, mas como iremos fazer para uma série de usuários? Utilizando pipes, então vamos a sintaxe dos comandos a serem utilizados.

Get-Mailbox | set-mailbox -MaxSendSize 5MB
Onde toda saída do get-mailbox, ou seja, todas as mailboxes terão o atributo MaxSendSize alterado para 5MB

Get-Mailbox | select Name,MaxReceiveSize,MaxSendSize

Do resultado de get-mailbox estaremos selecionando somente os atributos Name,MaxReceiveSize,MaxSendSize na tela.

Como alterar todos usuários com determinado atributo?

Um ponto interessante no gerenciamento de usuários/mailboxes é que as informações ficam em locais separados, todas informações relacionadas aos usuários ficam no Active Directory e podemos recuperá-las através do comando get-user e outras através do get-mailbox. Mas os dados mostrados são diferentes, abaixo podemos ver o resultado do get-user onde são listados todos os usuários e o tipo de recipientes que eles são (usermailbox, user) quando rodamos o get-mailbox são apresentandos somente os usuários do tipo UserMailbox.

E quando precisamos alterar um determinado atributo de todos usuários que pertencem a determinado estado? precisamos unificar as saídas de get-user e get-mailbox para termos o nosso resultado. Isto ocorre porque o get-mailbox não traz informações relacionados ao usuário (departamento, telefone, webpage, estado e etc..).

Para isto precisamos unficar ambos, para começar vamos rodar o get-user listando somente os do tipo userMailbox, para tanto devemos rodar o seguinte cmdlet:

Get-User | Where-Object { $_RecipientType -eq "UserMailbox" }

Onde, o resultado de get-user será filtrado através de RecipientType para listar somente os UserMailbox

Agora que já conseguimos listar somente os usuários que possuem caixa, precisamos adicionar um "E" lógico e verificar também os que possuem como Estado a palavra "RS", então utilizamos:

Get-User | Where-Object { $_RecipientType -eq "UserMailbox" -and $_.StateorProvince -eq "RS"}

Estamos dizendo que da saída do get-user queremos todos que sejam UserMailbox e também do tipo RS no campo Estado ou Província.

Agora baseado no script acima, precisamos definir o atributo1 da caixa com o texto "alterado by script", então devemos:

Get-User | Where-Object { $_RecipientType -eq "UserMailbox" -and $_.StateorProvince -eq "RS"} | Set-Mailbox -CustomAttribute1:"Alterado by Script!"

Com o resultdo do cmdlet estamos alterando o atributo chamado CustomAttribute1 para o valor que definimos.

Agora se rodar o cmdlet get-mailbox <user> | format-list, teremos o resultado abaixo podemos perceber que em CustomAttribute1 consta com o valor que acabamos de alterar.

E támbém podemos olhar o mesmo atributo via Exchange Management Shell mostrando que foi inserido o texto via Managemetn Shell corretamente.

Conclusão

Com este tutorial mostramos como alterar um grande número de usuários utilizando o Exhange Management Shell.

Anderson Patricio

Anderson Patricio - Trabalha com informática desde 1995, é consultor Microsoft em projetos de Active Directory, Exchange e ISA pela Quattuor Informática em Porto Alegre.
Certificações: MCSE +M +S 2003, MCSE +M +S 2000, MCSA +M +S 2003, MCSA +M +S 2000
Blog: http://spaces.msn.com/members/andersonpatricio/