Skip to main content

Enable or Disable Exchange features (OWA, ActiveSync, MAPI, POP3, IMAP) for specified mailbox in the case you need to "pause" it

In certain cases you need to pause access to the user's mailbox without disabling user's account or Exchange mailbox. Therefore mailbox features should be disabled. I created a simple script that disables or enables all mailbox features on specified mailbox. You can download the script here Pause_Mailbox_Features_For_Mailbox.ps1

# -----------------------------------------------------------------------------------
#
# Enter mailbox name you want to "pause". Use Get-Mailbox command to get correct name

# Be careful when using this script since it disables or enables Exchange features
# for a specified user mailbox.
#
# If this is not your intention, don't use it.
# This script is provided "AS IS" with no warranties, and confers no rights.
#
# Check www.exchangelog.info for more useful information
#
#------------------------------------------------------------------------------------

# BEGIN script


$User = read-host "Please enter the users mailbox name";

$caption = "Disable / Enable";
$message = "What do you want to do with mailbox features, Enable or Disable them?";
$Enabled = new-Object System.Management.Automation.Host.ChoiceDescription "&Enable";
$Disabled = new-Object System.Management.Automation.Host.ChoiceDescription "&Disable";
$choices = [System.Management.Automation.Host.ChoiceDescription[]]($Disabled,$Enabled);
$answer = $host.ui.PromptForChoice($Caption,$message,$choices,0);

#Disable Exchange features for specified mailbox


#Disable OWA

Set-CASMailbox -id $User -OWAEnabled $answer

if($answer -eq '0') {

    Write-Host "OWA disabled" 
} else { 
    Write-Host "OWA is enabled" 
}

#Disable ActiveSync

Set-CASMailbox -id $User -ActiveSyncEnabled $answer

if($answer -eq '0') {

    Write-Host "ActiveSync disabled" 
} else { 
    Write-Host "ActiveSync is enabled" 
}

#Disable MAPI

Set-CASMailbox -id $User -MAPIEnabled $answer

if($answer -eq '0') { 

    Write-Host "MAPI disabled" 
} else { 
    Write-Host "MAPI is enabled" 
}

#Disable POP3


Set-CASMailbox -id $User -PopEnabled $answer


if($answer -eq '0') { 

    Write-Host "POP3 disabled" 
} else { 
    Write-Host "POP3 is enabled" 
}

#Disable IMAP

Set-CASMailbox -id $User -IMAPEnabled $answer

if($answer -eq '0') {

    Write-Host "IMAP disabled" 
} else { 
    Write-Host "IMAP is enabled" 
}

# END script

Comments

Popular posts from this blog

Error "<#5.5.2 smtp;554 5.5.2 Invalid data in message> #SMTP#" when you send attachment in your mail

Some users were receiving error <#5.5.2 smtp;554 5.5.2 Invalid data in message> #SMTP# when they sent message with attachment. The problem is when attached document name is longer than 50 characters. Some Firewalls have header size restriction and that limit blocks this messages to be sent. To correct this, change header limit on affected Firewall or shorten the name of the document you are sending (which is probably not good permanent solution).******
Update #1: Default header size limit in Exchange 2007 is 64K.Update #2: It might be the SMTP version problem. Mail is rejected with CONTENT-DISPOSITION error (overly long message header field for CONTENT-DISPOSITION) but not for all SMTP servers (same mail sent through different SMTP servers). If you send mail with attachment that has name longer than 50 characters from Exchange 2007 directly through DNS you may encounter this error, but if you send same mail from Exchange 2007 through smart host (other than Exchange) mail is d…

Change SMTP port 25 in Exchange 2007, 2010

For some reason you might want to change default SMTP port number 25 Exchange 2007 is using. Exchange 2007 uses RECEIVE AND SEND connectors, one for receiving mails and other for sending mails (obviously ;)
So you need to change ports on those connectors. I will not say those two, because you might be using more than two.
You change Receive connector port by opening the connector properties in Exchange Management Console --> Hub Transport --> RECEIVECONNECTORNAME --> Properties --> Network --> Local IP Addresses (Edit Receive Connector Binding)
Just to clarify what "Local IP Addresses" and "Remote Servers" are (from Exchange 2007 help), because I find it little bit confusing: Use these local IP Addresses to receive mail Use this list to specify the IP addresses and port numbers on which this Receive connector listens for incoming mail. Receive mail from remote servers which have these IP addresses Use this list to specify the remote IP address range fr…

The Windows component Server-Gui-Mgmt-Infra isn't installed on this computer and needs to be installed before Exchange setup

You get this error "The Windows component Server-Gui-Mgmt-Infra isn't installed on this computer and needs to be installed before Exchange setup" when you try to install Exchange 2016 on Windows 2016 server. Exchange 2016 pre CU3 does not support Windows 2016, therefore you need to download Exchange 2016 CU3, which is in fact full copy of Exchange 2016 server in order to install it on Windows 2016 machine.