Exchange 2010 SP3 Rollup 6

Exchange 2010 LogoToday the Exchange Team released Rollup 6 for Exchange Server 2010 Service Pack 3 (KB2936871). This update raises Exchange 2010 version number to 14.3.195.1.

This Rollup includes the following fixes:

  • 2960652 Organizer name and meeting status field can be changed by EAS clients in an Exchange Server 2010 environment
  • 2957762 “A folder with same name already exists” error when you rename an Outlook folder in an Exchange Server 2010 environment
  • 2952799 Event ID 2084 occurs and Exchange server loses connection to the domain controllers in an Exchange Server 2010 environment
  • 2934091 Event ID 1000 and 7031 when users cannot connect to mailboxes in an Exchange Server 2010 environment
  • 2932402 Cannot move a mailbox after you install Exchange Server 2010 SP3 RU3 (KB2891587)
  • 2931842 EWS cannot identify the attachment in an Exchange Server 2010 environment
  • 2928703 Retention policy is applied unexpectedly to a folder when Outlook rule moves a copy in Exchange Server 2010
  • 2927265 Get-Message cmdlet does not respect the defined write scope in Exchange Server 2010
  • 2925273 Folder views are not updated when you arrange by categories in Outlook after you apply Exchange Server 2010 Service Pack 3 Update Rollup 3 or Update Rollup 4
  • 2924592 Exchange RPC Client Access service freezes when you open an attached file in Outlook Online mode in Exchange Server 2010
  • 2923865 Cannot connect to Exchange Server 2010 when the RPC Client Access service crashes

Notes:

  • If you want to speed up the update process for systems without internet access, you can follow the procedure described here to disable publisher’s certificate revocation checking.
  • If you got a DAG and want to properly update the DAG members, check the instructions here.
  • Rollups are cumulative, i.e. they contain fixes released in earlier update Rollups for the same product level (RTM, SP). This means you don’t need to install previous Rollups during a fresh installation but can start with the latest Rollup package.

As with any Hotfix, Rollup or Service Pack, I’d recommend to thoroughly test this rollup in a test and acceptance environment first, prior to implementing it in production.

You can download Exchange 2010 SP3 Rollup 6 here.

Exchange 2010 SP3 Rollup 5

Exchange 2010 LogoToday the Exchange Team also released Rollup 5 for Exchange Server 2010 Service Pack 3 (KB2917508). This update raises Exchange 2010 version number to 14.3.181.6.

This Rollup also adds support for using Windows Server 2012 R12 domain controllers in your Exchange 2010 SP3 RU5 environment as well as support for running Windows Server 2012 R2 forest and domain functional levels.

This Rollup includes the following fixes:

  • 2887459 Public folder expiry time is set incorrectly in Exchange Server 2010 SP3
  • 2892257 Email items are lost when you move items between shared folders by using EWS delegate access
  • 2897935 “Cannot save the object ‘\FolderName'” error message when you try to replicate Exchange Server 2010 public folders
  • 2898908 EdgeTransport.exe crashes if the From field is empty in an email message
  • 2903831 Only a single character is allowed in the disclaimer content in ECP
  • 2904459 RPC Client Access service crashes if you add “Signed By” or “Send From” column in Outlook online mode
  • 2913413 RPC Client Access service crashes with an exception in Exchange Server 2010
  • 2913999 Meeting request body and instructions are lost in delegate’s auto-forwarded meeting request
  • 2916836 EdgeTransport.exe crashes when a transport rule sends a rejection message to an empty address
  • 2919513 Memory leak or memory corruption occurs in Exchange Server 2010
  • 2924971 RPC Client Access service stops when you select an inactive search folder in Outlook 2007 in an Exchange Server 2010 SP3 environment
  • 2926057 EdgeTransport.exe crashes if seek operation failed in Exchange Server 2010
  • 2927856 Incorrect recurring meeting if disclaimer transport rule is enabled in Exchange Server 2010

Notes:

  • As of Service Pack 2 Rollup 4, its no longer required to disable/re-enable ForeFront Protection for Exchange using the fscutility to be able to install the Rollup properly. However, if you want to remain in control, you can disable ForeFront before installing the Rollup using fscutility /disable and re-enable it afterwards using fscutility /enable.
  • If you want to speed up the update process for systems without internet access, you can follow the procedure described here to disable publisher’s certificate revocation checking.
  • If you got a DAG and want to properly update the DAG members, check the instructions here.
  • Rollups are cumulative, i.e. they contain fixes released in earlier update Rollups for the same product level (RTM, SP). This means you don’t need to install previous Rollups during a fresh installation but can start with the latest Rollup package.

As with any Hotfix, Rollup or Service Pack, I’d recommend to thoroughly test this rollup in a test and acceptance environment first, prior to implementing it in production.

You can download Exchange 2010 SP3 Rollup 5 here.

Cmdlet Extension Agents & XML Case Sensitivity

Ex2013 LogoOccasionally, I get requests to come to the aid of a fellow IT professional (I seldomly get requests to come to the aid of fair maidens. Oh, well). This weekend I responded to one of those distress calls by someone who couldn’t get his Cmdlet Extension Agent to work. This post is a quick heads-up for the collective memory of IT Professionals as it took me quiet a bit of screen staring to spot the issue.

For those unfamiliar with Cmdlet Extension Agents, they are modules which allow you to enhance or customize the behavior of cmdlets in Exchange. For example, the built-in Mailbox Resources Management agent is responsible for picking the database when creating new mailboxes when a database hasn’t been specified. By means of the Script Agent and an XML file named ScriptingAgentConfig.xml containing PowerShell code fragments, you can enhance and tailor Exchange cmdlets to your own needs. For those interested in Cmdlet Extension Agents, I did two earlier articles on Cmdlet Extension Agents, here and here.

The code provided was a simple agent to enhance New-Mailbox with enabling SingleItemRecovery after the mailbox was created:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration version="1.0">    
        <Feature Name="Mailbox Provisioning" cmdlets="new-mailbox">
         <ApiCall Name="OnComplete">
             if($succeeded) {
                $newmailbox = $provisioningHandler.UserSpecifiedParameters["Name"]
                set-mailbox $newmailbox -SingleItemRecoveryEnabled $true
                }
        </ApiCall>
        </Feature>
</Configuration>

The Scripting Agent was enabled using Enable-CmdletExtensionAgent. Yet, for some reason after creating a new mailbox, SingleItemRecoveryEnabled wasn’t enabled. Running New-Mailbox in Verbose mode showed that the Scripting Agent did not come into play:

Capture1Now know that debugging and troubleshooting Cmdlet Extension Agents can be an unpleasant task since you put PowerShell code in XML files and there is no way to easily perform simple tests except running the Cmdlet you’re customizing or developing script fragments in an external PowerShell script and copy/paste it in the Scripting Agent XML file when you think it’s ready for and want to perform some final tests.

I didn’t immediately spot it, so to see if the problem was actually in the XML I picked the example of my 2nd article on Cmdlet Extension Agents and I compared it with the non-working XML using WinMerge (which by the way is an excellent tool to compare code or plain texts):

WinMergeIt took some time to discover why the Scripting Agent wouldn’t pick up the XML and it can be easily overlooked. The culprit in underlined in red: the C of the Cmdlets attribute in the Feature tag should be uppercase. Doh! This case sensitivity is perhaps not a primary suspect by Windows folks, as mostly we don’t have to worry about it and things “just work”, but in the case of XML it is essential. The XML standard prescribes that element names (<Feature> .. </Feature>) and attribute names (<Feature Cmdlets=..>) are case-sensitive entitling the Scripting Agent to be strict.

Can’t Create Mailboxes in Remote Sites

Ex2013 LogoRecently I got an e-mail from someone who had problems creating mailboxes in a new environment. When trying to create a mailbox, he received a following message stating, “Load balancing failed to find a valid mailbox database.” Apparently, the Mailbox Resources Management Agent (a Cmdlet Extension Agent) could not find an eligible mailbox database candidate.

image

The MRMA uses the following selection process when picking a candidate for mailbox creation or moving:

  1. Create a list of all mailbox databases;
  2. Remove databases marked for exclusion;
  3. Remove databases out of the management scope;
  4. Remove databases from remote (AD) sites;
  5. Pick a random online, healthy database from the list.

This person had a DAG, two mailbox databases (MDB1, MDB2) and two sites (AMS and LON).

We first checked the more or less obvious, which is to see if databases are not excluded from the provisioning process, so we entered Get-MailboxDatabase | fl *FromProvisioning:

image

Databases seemed enabled for provisioning. We then checked the status of the active database copies:

image

The copies looked healthy, but we noticed all databases were mounted in a remote site (derived from the server name starting with LON; we’re working from AMS). Looking back at the database selection process, it explained why it probably didn’t work and since the active copies should be moved back to the preferred site AMS anyway we moved the active copies back:

image

After moving the active database copies back to the location where we were performing our cmdlets from solved things.

Note that we could have discovered the issue using the Verbose parameter with the cmdlet. For example, New-Mailbox in conjunction with Verbose will show the selection process. The following screenshot shows an unsuccessful selection process considering available databases:

image

This screenshot shows a successful selection process.

image

More information on automatic mailbox distribution and controlling its behavior here.

Exchange ESE Performance: 2010 versus 2013

Ex2013 LogoNote: I finished this article after having the draft ready for some time. It describes a simple storage performance test I did some time ago when I had some spare time and a few SSD disks to spare – a seldom circumstance. Despite Exchange 2013 CU3 and Windows Server Server 2012 R2 now available, I choose not to redo the tests with current versions as WS2012 R2 is more similar to WS2012 than WS 2012 is to WS2008R2 and also due to current time and resource constraints. Therefor, the information collected at the time is used as-is. Also, be sure to check the disclaimer at the end of the article.

After the release of Exchange 2013, the claim was that the new Exchange extensible storage engine (ESE), when compared to Exchange 2010 ESE, would require 50% less IOPS. I wanted to get in indication if there was any truth to that claim utilizing my humble lab setup, consisting of HP’s entry level ML110 G6 servers (x3430, 16GB). Using spare SSD’s as storage, that should provide sufficient IOPS thus not becoming a bottleneck, I ran JetStress 2010 and JetStress 2013 to see if there were any significant differences in the results. As at that time Windows Server 2012 also became available, I ran both versions of JetStress on Windows Server 2008 R2 as well as on Windows Server 2012.

For those unfamiliar with JetStress, it is the tool to verify the performance and stability of Exchange storage solutions and is normally used prior to putting an Exchange server into production when validate the storage solution against required performance criteria. It does this by simulating Exchange I/O patterns for a specified number of users and profiles or you can test the storage throughput in general.

The following parameters were used to perform JetStress tests:

Mode Test Disk Subsystem Throughput
Thread Count 8 (fixed)
Min/Max DB Cache 32 MB / 256 MB
Ins / Del / Repl / Read % 40/20/5/35
Lazy Commits 70%
Run Background DB Maintenance True
Databases 1 x 100 GB DB, 3 Copies

I used a fixed number of threads to rule out differences in JetStress’ auto tuning components and level the 2010 and 2013 playing fields. Also, in JetStress 2013 the thread count is global where in JetStress 2010 it was a per database setting. Since we’re using a single database, this shouldn’t have any impact. The database and logs were storage on a single LUN, using a a dedicated directly attached SSDs with an aligned NTFS partition and 64k cluster size.

The results of the JetStress 2010/2013 tests on Windows Server 2008 R2 / 2012 are contained in the table below (I/O is Total I/O as Database and Logs were put on the same volume). All significant (10%+) deviations are marked in bold.

JetStress Version 14.2.225.17
(2010)
15.0.658.4
(2013)
14.2.225.17
(2010)
15.0.658.4
(2013)
ESE.DLL 14.3.123.2
(Exchange 2010 SP3)
15.0.620.0
(Exchange 2013 CU1)
14.3.123.2
(Exchange 2010 SP3)
15.0.620.0
(Exchange 2013 CU1)
Operating System 6.1.7600
(WS2008R2)
6.1.7600
(WS2008R2)
6.2.9200.0
(WS2012)
6.2.9200.0
(WS2012)
Overall Test Result Passed Passed Passed Passed
Achieved Transactional IOPS 773,71 899,72 777,34 865,84
Database Reads Average Latency (msec) 16,86 11,78 16,06 11,47
Database Writes Average Latency (msec) 4,54 3,70 4,32 3,32
Database Reads/sec 397,82 506,96 396,41 490,70
Database Writes/sec 392,75 398,87 398,76 381,34
Database Reads Average Bytes 42.681,78 35.649,30 43.127,88 35.753,71
Database Writes Average Bytes 35.404,62 35.312,04 34.894,94 35.520,67
Log Reads Average Latency (msec) 12,17 9,34 10,29 8,35
Log Writes Average Latency (msec) 0,68 0,57 0,63 0,50
Log Reads/sec 8,97 9,03 8,36 8,84
Log Writes/sec 171,72 172,59 172,94 173,15
Log Reads Average Bytes 232.562,93 232.566,98 232.565,23 232.565,17
Log Writes Average Bytes 6.305,28 8.381,35 5.845,82 8.269,47
Avg. % Processor Time 3,65 2,83 3,70 2,77
JetStress Report Link Link Link Link

Some interesting observations:

  • Though I didn’t see a 50% IOPS reduction, which could be related to my setup, Exchange 2013 generates significant less IOPS;
  • Exchange 2013 shows significant lower average DB+Log latencies for read and write operations;
  • Exchange 2013 on WS2012 gives slightly worse IO performance but offers lower DB+Log latencies for read and write operations;
  • Exchange 2013 shows a higher DB read read (DB Reads/sec) reading smaller chunks of data (DB Reads Avg. Bytes);
  • Stressing the disk subsystem in Windows Server 2012 results in a lower CPU utilization.

Finally, a short disclaimer: This test was only performed to get an indication of differences in storage performance of Exchange Server 2010 SP3 and Exchange Server 2013 CU1 on Windows Server 2008 R2 and Windows Server 2012 when utilizing identical hardware. The JetStress results are purely indicative and not meant to provide guidance or proof related to disk subsystem performance in any form with regards to Exchange Server 2010 versus Exchange Server 2013 on Windows Server 2008 R2 and Windows Server 2012. Your mileage may – and will – vary.

You can download the JetStress tool here to test your storage solution; monitor my toolkit page for any updates. The JetStress 2013 Field Guide can be found here.

MS13-105: Security Fix & Rollup Fest for Exchange 2007/2010/2013

Ex2013 LogoToday the Exchange Team released security fixes for the issue described in bulletin MS13-105. Fixes have been released for the following product levels:

Note that depending on the release scheme fixes are either made available through a Rollup or as security fix; the Rollups only address the vulnerabilities mentioned in security bulletin.

Note that this Rollup or security fix replaces MS13-061 – you can install MS13-105 over installations containing MS13-061 (no need to uninstall it first).

Exchange 2010 SP3 Rollup 3

Exchange 2010 LogoToday the Exchange Team released Rollup 3 for Exchange Server 2010 Service Pack 3 (KB2891587). This update raises Exchange 2010 version number to 14.3.169.1.

Here’s a list of fixes contained in this Rollup:

    • 2715761 “550 5.6.0″ NDR when you send a yearly recurring meeting request in an Exchange Server 2010 environment
    • 2839533 RPC Client Access service freezes in an Exchange Server 2010 environment
    • 2840454 “The rules on this computer do not match the rules on Microsoft Exchange” error when you manage rules by using Outlook 2013 in an Exchange Server 2010 environment
    • 2874070 Public folders are exposed although the user does not have rights to see the parent folders in an Exchange Server 2010 SP3 environment
    • 2878175 Client Access server crashes when you use Outlook with a Riverbed WAN optimizer in an Exchange Server 2010 environment
    • 2879320 Retention action setting is not updated in FAI items by running the Set-RetentionPolicyTag cmdlet in an Exchange Server 2010 environment
    • 2879736 Office 365 users cannot retrieve an on-premises user’s free/busy data in an Exchange Server 2010-based hybrid deployment
    • 2880153 RPC Client Access Service crashes if Outlook is in online mode in an Exchange Server 2010 environment
    • 2880290 RPC Client Access service crashes when you use Outlook in ANSI online mode in an Exchange Server 2010 environment
    • 2882467 RPC Client Access service stops if Outlook is in online mode in an Exchange Server 2010 environment
    • 2882677 BlackBerry device is not redirected in an Exchange Server 2010 environment
    • 2886469 EAS client receives status code 8 during synchronization in an on-premises Exchange Server 2010 environment
    • 2886567 “Objects added to a BindingSource’s list must all be of the same type” error message when you add an additional domain name in Exchange Server 2010 SP3
    • 2887574 RPC Client Access service freezes when your mailbox reaches the quota limit in an Exchange Server 2010 environment
    • 2888406 Mailbox Replication service crashes when you try to move mailboxes in an Exchange Server 2010 environment
    • 2888906 Events 1000, 4999, and 9775 are logged when Store.exe crashes on an Exchange Server 2010 SP3 Mailbox server
    • 2888911 W3wp.exe crashes when you decline a meeting request by using Outlook Web App or an EWS application in an Exchange Server 2010 environment
    • 2890650 Items in the Drafts folder are not stamped with the retention policy tag in an Exchange Server 2010 or 2013 environment
    • 2891194 Exchange ActiveSync devices are marked as “Blocked” in EMS and EMC when the devices are synchronizing with the Exchange Server 2010 server
    • 2892337 Outlook client freezes when you try to sort email folders by columns in an Exchange Server 2010 environment
    • 2893437 Delegate can read your AD RMS protected messages by using Outlook Web App in an Exchange Server 2010 environment
    • 2896304 Background image is displayed incorrectly in an email message when a disclaimer rule is enabled in an Exchange Server 2010 environment
    • 2899146 You cannot drag email messages to other folders by using Outlook Web App in an Exchange Server 2010 environment

As of Service Pack 2 Rollup 4, its no longer required to disable/re-enable ForeFront Protection for Exchange using the fscutility to be able to install the Rollup properly. However, if you want to remain in control, you can disable ForeFront before installing the Rollup using fscutility /disable and re-enable it afterwards using fscutility /enable.

If you want to speed up the update process for systems without internet access, you can follow the procedure described here to disable publisher’s certificate revocation checking.

If you got a DAG and want to properly update the DAG members, check the instructions here.

As with any Hotfix, Rollup or Service Pack, I’d recommend to thoroughly test this rollup in a test and acceptance environment first, prior to implementing it in production.

You can download Exchange 2010 SP3 Rollup 3 here.

IOS 7.0: To Block or Not to Block? (updated)

iPhone iOSWith the meeting and log flooding issues caused by certain IOS 6.x versions still fresh in memory, one may prefer to adopt a more conservative strategy when it comes to new IOS releases interacting with your Exchange infrastructure – or any mobile OS for that matter.

After Apple released IOS 7.0 this week, some shops consider blocking or quarantining this version until it’s been approved after proper testing and monitor online communities for potential issues during a small waiting period.

In an earlier article, I mentioned how to accomplish (temporarily) blocking IOS 6.x on Exchange 2010 or TMG; here’s how to achieve this for IOS 7.0 on current platforms:

To distinguished IOS 7.0 from earlier versions, you need to check the DeviceOS field as returned by Get-ActiveSyncDevice (Exchange 2010) or Get-MobileDevice (Exchange 2013). For example, here’s how to return current partnered EAS devices:

#Exchange 2010:
Get-ActiveSyncDevice | Where {$_.DeviceOS -like"IOS 7.0*"}

#Exchange 2013:
Get-MobileDevice | Where {$_.DeviceOS -like "IOS 7.0*"}

To block or quarantine IOS 7.0 devices you can utilize Exchange’s Allow/Block/Quarantine (ABQ) mechanism using the New-ActiveSyncDeviceAccessRule cmdlet in conjunction with the DeviceOS, DeviceModel or UserAgent string. When using DeviceOS, it requires specifying the full device OS string, which can vary per device or IOS.

For example, when the DeviceOS is iOS 7.0 11A465 (meaning build 11A465) or 7.0.1 11A470a, the cmdlet for setting up the quarantine rule would be (for blocking replace Quarantine with Block):

New-ActiveSyncDeviceAccessRule -QueryString “iOS 7.0 11A465″ -Characteristic DeviceOS -AccessLevel Quarantine
New-ActiveSyncDeviceAccessRule -QueryString “iOS 7.0.1 (11A470a)″ -Characteristic DeviceOS -AccessLevel Quarantine 

For the exact strings consult Get-ActiveSyncDevice/Get-MobileDevice output.

For examples of alternative blocking methods using TMG or F5, check this article. More information on ABQ here. Note that users utilizing the OWA for iPhone or iPad apps won’t be blocked after implementing this measure.

Be advised there are already reports of issues with iOS 7.0 such as substantial reduction of battery life and slow devices. What’s far worse is that you can also bypass the lock screen, similar to the lock screen glitch in IOS 6.1.3. L’histoire se répète.

Update (21Sep): According to reports, iOS 7 allows you to make calls despite the lock. How’s that for a potential corporate smart phone.

Update (26sep): Apple has released security update iOS 7.0.2 (build 11A501, all devices) which fixes the lock screen glitch. Another good reason to block earlier iOS 7.0 / 7.0.1 versions, only allowing iOS 7.0.2 devices to retrieve company data.

Exchange 2010 SP3 Rollup 2 & SP2 RU7 (updated)

Exchange 2010 LogoNote that the installation of Exchange 2010 SP3 RU2 might prompt for the Service Pack files. Yes, you read that right. Exchange fellow Steve Goodman posted a blog on this issue here.

Today the Exchange Team released Rollup 2 for Exchange Server 2010 Service Pack 3 (KB2866475). This update raises Exchange 2010 version number to 14.3.158.1.

Here’s a list of fixes contained in this Rollup:

    • 2837926 Error message when you try to activate a passive copy of an Exchange Server 2010 SP3 database: “File check failed”
    • 2841150 Cannot change a distribution group that contains more than 1,800 members by using ECP in OWA in an Exchange Server 2010 environment
    • 2851419 Slow performance in some databases after Exchange Server 2010 is running continuously for at least 23 days
    • 2853899 Only the first page of an S/MIME signed or encrypted message is printed by using OWA in an Exchange Server 2010 environment
    • 2854564 Messaging Records Management 2.0 policy can’t be applied in an Exchange Server 2010 environment
    • 2855083 Public Folder contents are not replicated successfully from Exchange Server 2003 or Exchange Server 2007 to Exchange Server 2010
    • 2859596 Event ID 4999 when you use a disclaimer transport rule in an environment that has Update Rollup 1 for Exchange Server 2010 SP3 installed
    • 2860037 iOS devices cannot synchronize mailboxes in an Exchange Server 2010 environment
    • 2861118 W3wp.exe process for the MSExchangeSyncAppPool application pool crashes in an Exchange Server 2010 SP2 or SP3 environment
    • 2863310 You cannot send an RTF email message that contains an embedded picture to an external recipient in an Exchange Server 2010 SP3 environment
    • 2863473 Users cannot access Outlook mailboxes that connect to a Client Access server array in an Exchange Server 2010 environment
    • 2866913 Outlook prompts to send a response to an additional update even though the response request is disabled in an Exchange Server 2010 environment
    • 2870028 EdgeTransport.exe crashes when an email message without a sender address is sent to an Exchange Server 2010 Hub Transport server
    • 2871758 EdgeTransport.exe process consumes excessive CPU resources on an Exchange Server 2010 Edge Transport server
    • 2873477 All messages are stamped by MRM if a deletion tag in a retention policy is configured in an Exchange Server 2010 environment

In addition to these fixes, this Rollup also includes a fix for the security issue described in Microsoft Security Bulletin MS13-061.

Notes:

  • As of Service Pack 2 Rollup 4, its no longer required to disable/re-enable ForeFront Protection for Exchange using the fscutility to be able to install the Rollup properly. However, if you want to remain in control, you can disable ForeFront before installing the Rollup using fscutility /disable and re-enable it afterwards using fscutility /enable;
  • If you want to speed up the update process for systems without internet access, you can follow the procedure described here to disable publisher’s certificate revocation checking;
  • If you got a DAG and want to properly update the DAG members, check the instructions here;
  • Rollups are cumulative, i.e. they contain fixes released in earlier update Rollups for the same product level (RTM, SP). This means you don’t need to install previous Rollups during a fresh installation but can start with the latest Rollup package.

As with any Hotfix, Rollup or Service Pack, I’d recommend to thoroughly test this rollup in a test and acceptance environment first, prior to implementing it in production.

You can download Exchange 2010 SP3 Rollup 2 here.

Exchange 2010 SP2
For those still on Exchange 2010 SP2, Microsoft released Exchange 2010 SP2 Rollup 7. This Rollup only includes the MS13-061 security fix and raises Exchange 2010 SP2’s version number to 14.2.375.0, can be downloaded here; the related KB article is KB2874216.

Exchange 2010 Server Role Requirements Calculator 20.8

Exchange 2010 LogoA short while after the release of the 20.7 update, the Exchange Team released another minor update of the Exchange 2010 Server Role Requirements Calculator, bringing the version number to 20.8.

Compared to 20.7, this version contains a fix for secondary CAS CPU calculations.

You can download the calculator here. For more information please consult the changeblog or usage instructions.