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 PatricioOverview
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.
- Migrando e removendo o Exchange 2007 para Exchange 2010Exchange Server
- Migrando (e removendo) o Exchange 2007 para Exchange 2010Exchange Server
- Foto no Outlook 2010Exchange Server
- Exchange UM Test PhoneExchange Server
- Integrando o OCS ao Exchange UMOCS / LCS