Sendo sincero, executar um comando para exportar mailbox (New-MailboxExportRequest), por exemplo, não e algo tão complicado que justifique criar um script para isso. Mas dependendo do caso vale a pena evitar possíveis erros (por exemplo, se quem exporta é uma outra equipe e vive perguntando novamente como se faz), por isso vamos deixar um POST rápido com um exemplo de script para que você possa adicionar suas principais rotinas e simplificar suas tarefas do dia a dia.

Abaixo um exemplo de script:

Invoke-Expression ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto -ClientApplication:ManagementShell "
 $sair="0"
 While ($sair -eq "0")
 {
     cls
     echo "O que faremos agora?"
     echo ""
     echo "    1 - Criar uma Shared Mailbox"
     echo ""
     echo "    2 - Exportar uma caixa para PST"
     echo ""
     echo "    3 - Desabilitar uma Mailbox"
     echo ""
     echo "    4 - Resetar uma senha"
     echo ""    
     echo "    20 - Sair"
     echo ""
     $oquefaremos = (Read-Host "Escolha o que faremos")
     switch ($oquefaremos)
     {
         1 {
         # CRIAR UMA SHAREDMAILBOX
             cls
             echo "1 - Criar uma Shared Mailbox"
             echo ""
             $AliasBruto = Read-Host -Prompt 'Digite o ALIAS da Mailbox (ex: se ALIAS@suaempresa.com.br)'
             $Alias = $AliasBruto.ToLower().replace('@suaempresa.com.br','').replace('suaempresa\','').replace('suaempresa/','')
             $DisplayName = Read-Host -Prompt 'Digite o NOME PARA EXIBIÇÃO da Mailbox'
             New-Mailbox -Shared -Name $DisplayName -DisplayName $DisplayName -Alias $Alias -Database INSTITUCIONAL_01 -OrganizationalUnit "suaempresa.com.br/SharesMailboxes"
             Set-Mailbox $Alias -MessageCopyForSentAsEnabled $true
             Write-Host -NoNewLine 'Press ENTER para continuar…';
             $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
         }
         2 {
         # EXPORT PST
             cls
             echo "2 - Exportar uma caixa para PST"
             echo ""
             $AliasBruto = Read-Host -Prompt 'Digite o ALIAS da Mailbox (ex: se ALIAS@suaempresa.com.br)'
             $Alias = $AliasBruto.ToLower().replace('@suaempresa.com.br','').replace('suaempresa\','').replace('suaempresa.com.br/','')
             New-MailboxExportRequest $Alias -FilePath \\SEU_FILESERVER\SEU_SHARE$Alias.pst
             Write-Host -NoNewLine 'Press ENTER para continuar…';
             $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
         }
         3 {
         # DISABLE MAILBOX
             echo "3 - Desabilitar uma Mailbox"
             echo ""
             $AliasBruto = Read-Host -Prompt 'Digite o ALIAS da Mailbox (ex: se ALIAS@suaempresa.com.br)'
             $Alias = $AliasBruto.ToLower().replace('@suaempresa.com.br','').replace('suaempresa\','').replace('suaempresa/','')
             Disable-Mailbox -Identity $Alias -Confirm:$false
             Disable-ADAccount -Identity $Alias
             Get-ADuser -Identity $Alias | Move-ADObject -TargetPath "OU=.Disabled,DC=suaempresa,DC=com,DC=br"
             echo ""
             echo "Comando executado:"
             echo "Disable-Mailbox $Alias -Confirm:`$false"
             echo "Disable-ADAccount -Server suaempresa.com.br -Identity $Alias"
             echo "Get-ADuser -Identity $Alias | Move-ADObject -TargetPath 'OU=.Disabled,DC=suaempresa,DC=com,DC=ve'"
             Write-Host -NoNewLine 'Press ENTER para continuar…';
             $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');
         }
         4 {
         # RESET PASSWORD
             echo "4 - Resetar uma senha"
             echo ""
             $AliasBruto = Read-Host -Prompt 'Digite o ALIAS da Mailbox (ex: se ALIAS@suaempresa.com.br)'
             $Alias = $AliasBruto.ToLower().replace('@suaempresa.com.br','').replace('suaempresa\','').replace('suaempresa/','')
             $password = Read-Host -Prompt "Informe a nova senha para a conta $Alias" -AsSecureString
             $password = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($password))
             Set-ADAccountPassword $_.SamAccountName -Server $QUALDC -Reset -ChangePasswordAtLogon $true -NewPassword (ConvertTo-SecureString -AsPlainText $password -Force)     
         }
         20 {
             cls
             echo "Volte sempre"
             $sair="1"
         }
         #"fo*" {"That's too many."}
         Default {
             "Opcao Invalida"
         }
     }
 }

Mais Informações

Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.

Entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria
Categorias: Microsoft Exchange