Schedule a Transport Rule to be Enabled or Disabled at a Specific Time of Day / Day of the Week

AID: 9234
  • Status: Published

2570 points

The Problem:



In Exchange 2003, you could configure Exchange to delay the sending of large attachments until after hours, which was very useful if you have users that don't think twice before creating an email and attaching dozens of their most recent photographs in the email, then adding 20 or 30+ recipients to the email and hitting send - causing your Exchange server to go into melt-down as it tries its best to push all the emails out as quickly as possible.

So - having upgraded to Exchange 2007 or Exchange 2010 you may have discovered that this options doesn't exist any more, so you may find from time-to-time that your Internet connection suddenly grinds to a halt and if you dig hard enough, you may find the problem is sitting in your outbound Queues on your Exchange Server.

So - what to do about this?

Half a Solution:



You can create an Exchange Transport Rule to force large emails to be approved (before they are sent out), by a Manager or a Moderator which at least enables the Manager / Moderator to have to Approve the email before they clog up the Exchange Queues but as we are now living in a 24x7 age, if you don't want to have to approve / reject the emails in the evenings or over the weekend, there is no option in the Transport Rule to schedule the times that the Rule applies!  Quite frustrating, especially over a long weekend.

The Whole Solution:



The answer (well, my answer) to this is to create two Powershell Scripts, two batch files and a two Scheduled Tasks to Enable / Disable the Transport Rule at specific times (Disable after hours on Weekdays / Enable before work starts on Weekdays).

Start by creating a new folder on your Exchange server called Scripts on any drive you like (I will be using E:\scripts in my example).

Then open up Notepad and copy / paste the scripts below (one script per file) and then save the files as DisableTransportRule.ps1 and EnableTransportRule.ps1 in the E:\Scripts folder.

The PowerShell Scripts:


Disable Transport Rule:



# Script to Disable a Transport Rule
Disable-TransportRule "Rule_Name" -confirm:$false


Enable Transport Rule:



# Script to Enable a Transport Rule
Enable-TransportRule "Rule_Name" -confirm:$false


The Batch Files:



Open up Notepad and copy / paste the single line commands below (one command per file) and then save the files as DisableRule.bat and EnableRule.bat in the E:\Scripts folder.

Disable Transport Rule Batch File:



C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; e:\Scripts\DisableTransportRule.ps1"

Enable Transport Rule Batch File:



C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; e:\Scripts\EnableTransportRule.ps1"

Scheduled Tasks:



Open up Server Manager and Expand Configuration> Task Scheduler.  In the Actions Pane, click on Create Task.....

TaskScheduler.png
  • 33 KB
  • TaskScheduler
TaskScheduler


On the General Tab, Name the Task according to the rule you want to run e.g., Disable Transport Rule, then Select 'Run whether user is logged on or not" and "Run with highest privileges".

TransportRuleGeneralTab.png
  • 14 KB
  • TransportRuleGeneralTab
TransportRuleGeneralTab


On the Triggers Tab, Click on New and Select "Weekly" and enable the days of the week you want the rule to run e.g., Mon to Fri.  Set the time you want the rule to run e.g., 18:00:00 hours and tick the "Enabled" box and click OK.

TransportRuleEventTrigger.png
  • 16 KB
  • TransportRuleEventTrigger
TransportRuleEventTrigger


On the Actions Tab, Click on New and the default option is to Start a Program.  Leave this selected and in the Program/script: window, click on Browse and select 'e:\scripts\disable.bat', then in the Start in (optional): box, enter 'e:\scripts' and click on OK.

TransportRuleAction.png
  • 8 KB
  • TransportRuleAction
TransportRuleAction


We don't need to add anything to the Conditions Tab or the Settings Tab, so click OK and then enter the relevant username / password for the account you want to use to run the Scheduled Task as (usually an Administrator account).

ScheduledTaskSecurityPrompt.png
  • 24 KB
  • ScheduledTaskSecurityPrompt
ScheduledTaskSecurityPrompt


Repeat the above for the Enable.bat file.

One last step:



Before these commands will run properly, you need to run the following command in the Exchange Management Shell:

Set-ExecutionPolicy RemoteSigned

SetExecutionPolicy.png
  • 9 KB
  • SetExecutionPolicy
SetExecutionPolicy


This command allows Powershell to interact with the Exchange Management Shell.

Summary:



So - you should now have two Scheduled Tasks that Disable your Transport Rule at a specified time on specific days (mine are Disabled at 18:00:00 hrs Mon - Fri) and another Scheduled Task to Enable the Transport Rule at a specific time one specific days (mine are enabled at 07:30:00 hrs Mon-Fri), so now, after hours and at weekends, you won't have to approve emails for your Exchange organisation and if someone sends out an email with large attachments to multiple users, there is less impact on the rest of the workforce.

If you found this article helpful - please vote for it :)
    Asked On
    2012-01-17 at 14:17:34ID9234
    Tags

    Exchange 2007

    ,

    Exchange 2010

    ,

    Schedule Transport Rule

    ,

    SBS 2008

    ,

    SBS 2011

    ,

    Large Email Attachments

    Topic

    Exchange Email Server

    Views
    1716

    Comments

    Expert Comment

    by: demazter on 2012-01-19 at 10:32:19ID: 34643

    Very nice workaround to a problem that shouldn't exist.

    Yes vote from me :-)

    Add your Comment

    Please Sign up or Log in to comment on this article.

    Join Experts Exchange Today

    Gain Access to all our Tech Resources

    Get personalized answers

    Ask unlimited questions

    Access Proven Solutions

    Search 3.2 million solutions

    Read In-Depth How-To Guides

    1000+ articles, demos, & tips

    Watch Step by Step Tutorials

    Learn direct from top tech pros

    And Much More!

    Your complete tech resource

    See Plans and Pricing

    30-day free trial. Register in 60 seconds.

    Loading Advertisement...

    Top Exchange Experts

    1. demazter

      724,144

      Sage

      1,580 points yesterday

      Profile
      Rank: Genius
    2. alanhardisty

      714,931

      Sage

      4,220 points yesterday

      Profile
      Rank: Genius
    3. jjmck

      275,745

      Guru

      1,030 points yesterday

      Profile
      Rank: Genius
    4. Rajkumar-MCITP

      268,093

      Guru

      0 points yesterday

      Profile
      Rank: Guru
    5. apache09

      245,757

      Guru

      1,500 points yesterday

      Profile
      Rank: Genius
    6. akicute555

      178,820

      Guru

      0 points yesterday

      Profile
      Rank: Wizard
    7. amitkulshrestha

      171,436

      Guru

      0 points yesterday

      Profile
      Rank: Genius
    8. acbrown2010

      159,135

      Guru

      1,000 points yesterday

      Profile
      Rank: Genius
    9. Akhater

      153,366

      Guru

      0 points yesterday

      Profile
      Rank: Genius
    10. Neilsr

      137,804

      Master

      0 points yesterday

      Profile
      Rank: Genius
    11. jordannet

      127,611

      Master

      10 points yesterday

      Profile
      Rank: Wizard
    12. GreatVargas

      101,542

      Master

      2,800 points yesterday

      Profile
      Rank: Wizard
    13. HendrikWiese

      95,084

      Master

      2,050 points yesterday

      Profile
      Rank: Sage
    14. limjianan

      94,700

      Master

      0 points yesterday

      Profile
      Rank: Genius
    15. endital1097

      93,710

      Master

      10 points yesterday

      Profile
      Rank: Genius
    16. Anuroopsundd

      92,000

      Master

      0 points yesterday

      Profile
      Rank: Sage
    17. davorin

      91,351

      Master

      0 points yesterday

      Profile
      Rank: Sage
    18. Radweld

      88,729

      Master

      0 points yesterday

      Profile
      Rank: Guru
    19. chakko

      88,498

      Master

      0 points yesterday

      Profile
      Rank: Genius
    20. R--R

      86,699

      Master

      0 points yesterday

      Profile
      Rank: Wizard
    21. e_aravind

      85,998

      Master

      0 points yesterday

      Profile
      Rank: Genius
    22. Exchange_Geek

      85,704

      Master

      0 points yesterday

      Profile
      Rank: Sage
    23. lucid8

      81,809

      Master

      0 points yesterday

      Profile
      Rank: Sage
    24. KalluSureshKumar

      76,534

      Master

      0 points yesterday

      Profile
      Rank: Master
    25. tigermatt

      73,020

      Master

      0 points yesterday

      Profile
      Rank: Genius

    Hall Of Fame