Exchange Server 2007 Management Shell/Scripting

Por Caio Cesar, reviewed by Eduardo Tavares de Almeida

Neste post irei mostrar alguns comandos comuns que administradores utilizam para a gerência e troubleshooting do Exchange Server 2007 (Hub/CAS/Edge/Mailbox Roles).

1. Habilitando uma resource mailbox e configurando-a para o auto accept de reuniões:

Primeira fase, habilitando:

a) Set-Mailbox -Identity “MailboxName” -Type Room

Segunda fase, habilitando o auto-accept:

b) Set-MailboxCalendarSettings -Identity “MailboxName”- AutomateProcessing AutoAccept

O comando “Get-Mailbox | fl DisplayName,ResourceType” traz uma lista das mailboxes e o resource type configurado.

2. Como habilitar 2 Mailbox Servers com LCR (Local Continuous Replication):

a) Mude o DB ratio para uma Database por Storage Group;

b) Execute o cmdlet Enable-DatabaseCopy;

c) Execute o cmdlet Enable-StorageGroupCopy.

Maiores informações:

Local Continuous Replication

Enable-DatabaseCopy

Enable-StorageGroupCopy

3. Configurando resource mailboxes para deletar arquivos com anexo (geralmente utilizado para que as mailboxes não ultrapassem o limite de quota):

Get-Mailbox -RecipientTypeDetails RoomMailbox | Set-MailboxCalendarSettings -DeleteAttachments $true

4. Efetuar o tracking pelo EMS utilizando o subject da mensagem:

Get-Message -Filter {Subject -eq ”MessageSubject”}

5. Forçar o Hub server para enviar emails que estão queued da fila (com status de retry):

Retry-Queue -Filter {Status -eq "retry"}

6. Adicionando e ativando um filtro para block and delete de uma extensão de arquivo (Edge Server):

a) Add-AttachmentFilterEntry -Name *.ext -type Filename

b) Set-AttachmentFilterListConfig -Action SilentDelete

* Aonde ext seria a extensão do arquivo.

7. Exportar para um arquivo csv o quanto as disconnected mailboxes consomem na estrutura:

Get-MailboxServer | Get-MailboxStatistics | Where {$_.DisconnectDate-ne$null} | Export-Csv –Path c:\filename.csv

8. Garantir que não exista data loss durante uma operação de switchover (CMS):

Set-MailboxServer MailboxServerName -AutoDatabaseMountDial:LossLess

· Lossless - O banco de dados não será montado automaticamente até que todos os logs gerados na cópia ativa tenham sido copiados para a cópia passiva.

9. Atualizar o Safe Senders configurado no Outlook dos usuários para o anti-spam do Edge Server (Edge):

Get-Mailbox -ResultSize Unlimited | where {$_.RecipientType -eq [Microsoft.Exchange.Data.Directory.Recipient.RecipientType]::UserMailbox } | Update-Safelist

Maiores Informações:

Update-SafeList

10. Removendo mensagens das mailboxes pelo subject:

a) Crie uma mailbox temporária e um diretório “Delete” nesta mailbox;

b) Get-Mailbox -Server ServerName | Export-Mailbox -TargetMailbox MailboxCriada -TargetFolder Delete -SubjectKeywords “SubjectDaMensagem” - DeleteContent

11. Obter uma lista dos protocolos habilitados para cada mailbox:

Get-CASMailbox

12. Configurar permissões para somente usuários específicos agendarem reuniões para uma resource mailbox:

Set-MailboxCalendarSettings -Identity ResourceMailboxName -BookInPolicy User1,User2,User3,User4 –AllBookInPolicy $false

13. Atualizando campos na Global Address List, pegando como exemplo o Street Address:

Get-User -Filter “StreetAddress -eq ‘Rua Alameda Inicial’ ” | Set-User -StreetAddress “Rua Nova Alameda”

14. Detalhar o número de mensagens por mailbox folder e exportar para um arquivo csv:

Get-ExchangeServer | Get-Mailbox | Get-MailboxFolderStatistics | Export-csv -path c:\nomedorelatorio.csv

15. Manter copias das mensagens enviadas/recebidas por um usuário em uma mailbox de monitoração:

New-JournalRule -Name:’User’-JournalEmailAddress:’usuario@email.com’ -scope :’Global’ -Enabled $true -Recipient:’mailboxdemonitoracao@email.com

16. Adicionar full access em uma mailbox:

Add-MailboxPermission -Identity SourceMailbox - User Usuario - AccessRights FullAccess

17. Aumentar quota de envio para um usuário:

Set-Mailbox –Identity Usuario - MaxSendSize XMB

* Altere o “x” para o valor necessário.