Service Pack 1 for Microsoft Exchange Server 2007 is due for release on 30 November 2007! Microsoft has prepared a major update for its flagship mail server which has now received many new features and improvements and can be downloaded from site.

Support for new platform

Microsoft Exchange Server is now fully compatible with Microsoft Windows Server 2008 and can be deployed to a computer running Windows Server 2008 RC0 Escrow build. The full list of supported operating systems can be found here.
Exchange Server 2007 SP1 has a mixed IPv6 128-bit addressing by default when running on a Windows Server 2008 platform. That is it only runs IPv6 when the obsolescent protocol IPv4 is enabled. Otherwise Exchange server will fail running on IP. If you are running a deployment for multiple machines you can create a rule to deploy only for the defined IPv6 range thus avoiding unsupported setup conditions with IPv6-enabled management tools or based on general information about support of IPv6 in Microsoft operating systems. Another way is to call a function that can resolve to an IPv6-address, that is something like IsResolvableEx used to resolve a hostname when performing a Web-Proxy autodiscovery or just issue a ping command on IPv6-address like say

ping6 -n 2 ::1

That is we ping 2 times on a loopback address 0:0:0:0:0:0:0:1 using a short notation (two-colon notation) for writing IPv6 addresses.

New features were added to a remote access for a remote client

Exchange Active Sync a has received a remote wipe confirmation feature and is now enabled with Enhanced Exchange ActiveSync mailbox policy settings which include ability to
Disable Removable Storage
Disable Camera
Disable Wi-Fi
Disable POP/IMAP e-mail
Block Internet Sharing

It both provides for a data protection and ensures a security for sensitive data on mobile devices should they be stolen or accidentally lost by user. This all can be done centrally from within Exchange Management Console or Exchange Management Shell and works in a best traditions of what is meant under a centralized management.

Mobile work becomes faster

The new Service Pack improves and speeds-up long-standing connections between a server and a mobile device mobile devices.

Dramatic improvements in remote work though Outlook Web Access

Microsoft has completely rewritten the Outlook Web Access in Exchange Server 2007 and SP1 brought many of those that were not enabled in the RTM so that OWA now comes with lightning new features too.
First off, running in a Light mode OWA does not time out any longer and no longer drops the session out if user is composing a long message or just working with its calendar for a long time. OWA now prevents you from losing your typed messages by automatically saving the them in as Draft folder as-you-type.
In Premium mode for Outlook Web Access it is now possible for a user to create and edit Personal Distribution Lists and server side rules.
What about support for Microsoft Office System 2007? WebReady Document Viewing has finally been added with support for decoding and viewing in HTML of Word/Excel and PowerPoint X-Documents in OpenXML format.
It is now possible to copy or move folders using a dedicated context menu command.

Public Folders functionality now offers following features:
It is now possible to get full access to public folders from OWA and you don’t have to use the Public virtual directory. And you can get full access to public folders on Exchange 2007 Mailbox servers is now available for users without the need for you to provide Public Folder access from Outlook Web Access on Exchange 2003 Mailbox server. Microsoft has also added search features for Public Folders.

Increased manageability within Exchange Management Console

Exchange Management Console has been enhanced with a brand new interface for administering POP3 and IMAP4 protocols.

Hub Transport Server role has been added with functionality to set message size limits on Active Directory site links.

New features in Mailbox Server role

It is now possible to import and export mailbox by using .pst files. I believe this will provide greater flexibility administrator especially combined with such functionally available in standalone applications as automatic configuration of .pst files for the end user profile.

Those companies that use IP telephony are now able to create SIP URI and E.164 dial plans and add a SIP or E.164 address for a user by using the Enable Unified Messaging Wizard.

Security changes

Exchange Web Services were added with a more granular permission configuration that now supports configuring folder level permissions so that both users and user applications are now able to list and configure permissions on folders. It is also possible to delegate management with services.

Official Document describing what’s new in Exchange Server 2007 SP1
Automatic configuration of mailboxes and Outlook profiles for the client side on the post-deployment stage
Additional information on what you have to do to deploy Exchange Server 2007 SP1 on Windows Server 2008 and Windows Server 2003 family
More information about what’s new about client access features in Exchange Server 2007 SP1

What if We Will Automate it Further?

As said, semi-automatic mode is better than nothing. But still, I guess, you’ll agree here, it’s not the way we should choose if we want to achieve productivity. We need the higher level of automation. Plus we want to be as more abstracted from the user side as it possible. As we are working in Active Directory environment it is reasonable to use its abilities and retrieve the information right from the active directory database. Going that way we’ll solve two problems at once: we will free ourselves from the need to fill in info personally user-by-user and strictly assign the signature to the user according to the official information stored in the Active Directory database. That allows avoiding confusion for the user and for the customer that will contact our user.

The Approach: Querying Active Directory for an Info

As we always do when we start working with some entities, we create an object instance that will represent it. Out main goal here is to retrieve information about the user, the member of the database, and then put it down into our document. We will use ADSystemInfo object and create its instance named objSysInfo that we will us to retrieve the system info data:

Set objSysInfo = CreateObject(“ADSystemInfo”)

After that we can retrieve a distinguished name of the user that is logged on to domain and that we want to create a signature for:

strUser = objSysInfo.UserName

We are using here the UserName property that is who returns the name of the user.

Username retrieved, we can connect (bind the object) to that user account. We use GetObject method that will create a new object from the reference we are linking it to:

Set objUser = GetObject(“LDAP://” & strUser)

Note: We can also shorten the expression and just write Set objUser = GetObject(“LDAP://” & objSysInfo.UserName). Then surely we have no need to define the strUser variable.

Getting the Stuff in Our Hands

That’s the time to start working with properties. What we need them for? We need them exactly to retrieve specific information that we will use during the document filling operation.

Typically a pair that will retrieve is the full user name and the company name and is well enough to build the signature. So basically we can limit the set of information that we will retrieve to just to properties:

1. FullName, this property will return the full name of the user. That is that the name that the user would basically get in the header of the Start menu if he will click on the Start button.

Note: If you haven’t add it, open Active Directory Users and Computers snap-in and change it. See this article for an additional info.

By the way there’s a nice article describing how to make this automatically using VBScript: How to change the display names of Active Directory users with Active Directory Services Interface script

2. Company, this property will return the full name of the company.

To call them just use this form

strName = name

Thus to retrieve the user full name, use the following expression:

strName = objUser.FullName

Correspondingly, to retrieve user company name use the expression:

strCompany = objUser.Company

Note: In fact you can overview get all off them with your own eyes if you’ll select user properties in either your contacts or using the user properties smart-tag.

Here’s how to do that:

1. Create a new e-mail.
2. Enter User Name that is recorded in Active Directory
3. Point to the typed name. The user properties smart-tag will arise in the upper left corner on the user name
4. Click on the smart-tag and select Outlook Properties
5. All these properties will be listed on the General tab of the %username% Properties dialog box

Thus you now have a clue on how to enhance the representativeness of the user mail signature. Just use the properties listed there and add them after the name of the object you used to create connection.

Thus to add user telephone number to the user signature use this expression:

strPhone = objUser.telephoneNumber

How to program Outlook
Automatic Management of Signatures Bindings and Formatting
Windows Scripting Host (WSH) Properties List
User Class Properties Reference for Windows 2000 Server and Windows Server 2003 Active Directory Schema
IADsUser Interface Property List
Reading Active Directory Object Properties in C#
Defining Object Properties of any Active Directory Schema Interface object using IADs Interface
User Object Attributes
Sue Moshers’ Solution to Create Outlook Signature using Windows Management Instrumentation (WMI) scripting