Exchange Management Changes
One of the big changes in Exchange 2007 is less visible for the administrators: it was (almost) completely .NETified, i.e. rewritten in managed code. This change affects the management interface, too: previous IIS/Exchange versions could be managed using COM and ADSI (metabase), but Exchange 2007 offers a Windows PowerShell-based management interface instead.
In fact, PowerShell is the only way to manage Exchange 2007: the graphical MMC administration tools of Exchange also use PowerShell commands. For instance, when you add a new Accepted Domain using the Exchange Management Console, the console MMC actually runs the New-AcceptedDomain PowerShell command. Even refreshing the list of accepted domains is done using PowerShell, by submitting a Get-AcceptedDomain command and processing the command results.
Due to this dependence of Exchange on PowerShell, it is not surprising that ORF has to use PowerShell to manage the ORF 4.1 Exchange transport agents. For instance, to start using a new transport agent, you have to first install the agent using the Install-TransportAgent command (actually, cmdlet in the PowerShell terminology), then use Enable-TransportAgent to enable the newly installed agent and then Restart-Service MSExchangeTransport to apply the changes by restarting the MSExchangeTransport service.
And how does this affect ORF?
Well, among other things, it would look quite odd if you would have to start the Exchange Management Shell right after installing ORF and type five rather cryptic-looking commands to install the two transport agents used by ORF. To avoid this, we have to automatize the installation somehow. Another thing is that we need to query the status of the transport agents and display them in the ORF Admin Tool.
So, two ORF components are necessarily affected: the ORF Setup and the ORF Administration Tool.
We played with the idea of creating separate ORF versions for Exchange 2007 and IIS/Exchange 2000/Exchange 2003, but eventually we realized that it would be just pain in the ass for the ORF users, so any changes in the above components will be triggered by the ORF Connector Mode, i.e. ORF components will detect if Exchange 2007 is installed and act accordingly.
In IIS Connector Mode, the ORF Setup will install the ORF SMTP Module just like previous versions did. In Exchange 2007 Connector Mode, Setup will install the ORF Transport Agents (and ask the user whether restarting the MSExchangeTransport service is a good idea at the moment). Similarly, when updating, ORF will ask to stop the IISAdmin service in IIS Mode and to stop the MSExchangeTransport service in Exchange 2007 Mode. (Actually, it’s not that simple. See below).
The ORF Administration Tool will feature a reworked Status Information page for the Exchange 2007 Connector Mode. The new page will display the ORF Service status, the status of the ORF Transport Agents and a summarized status which tells whether ORF is ready to filter emails (based on the agent + service status).
To help the Setup and the Admin Tool, we will introduce a new ORF component called the ORF Agent Installer (orfainst.exe), a command-line tool written entirely in .NET (C#) that allows installing/uninstalling the ORF Transport Agents and also querying their status. A separate component was needed, because the ORF Administration Tool is written in a native language (Borland Delphi) and thus it cannot use directly use PowerShell, however, it can run the Agent Installer and process the output.
Once you will get ORF 4.1, you will notice that the ORF Administration Tool does not immediately show you the status of the ORF Transport Agents, it will take up to 10 seconds to get them. This is mostly because of PowerShell: it takes ages to load the base PowerShell environment, another year is taken by loading the Exchange PowerShell snap-in and then the Get-TransportAgent cmdlet runs reasonably fast.
Back to the installer for a short moment: one interesting question raised by the common Exchange 2007 and IIS/Exchange 2000/Exchange 2003 installer is what happens when someone runs ORF in IIS Mode and then upgrades to Exchange 2007, without uninstalling ORF? Obviously, ORF will stop working, because the ORF SMTP Module installed for IIS no longer connects ORF to the incoming emails. Our current plan to deal with this situation two ways:
- The ORF Administration Tool will detect the Connector Mode changes and will tell the user what to do to connect ORF to Exchange 2007
- The ORF uninstaller will take the above case into consideration and will stop services and uninstall components accordingly.
Some details of the above may change as we are still working on the necessary changes in ORF.