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.