Thursday, February 14, 2013

Office 365 Wave 15 Release Date

It’s official! According to several Microsoft sources at the Exchange Ignite, the new version of Office 365 commonly known as “wave 15” will be released in a couple of weeks in February 27th! :)

This coincides with the release of Exchange 2013 CU1 as well.

So stay tuned in the Office 365 Blog!

Exchange Server 2010 SP3 Released

Finally the much anticipated SP3 for Exchange 2010 has just been released! It brings the features and capabilities:
  • Support for installing and deploying Exchange 2010 on Windows Server 2012;
  • Support for Internet Explorer 10 to connect to Exchange 2010;
  • Fixes;
  • Coexistence with Exchange 2013.
 
Important: Exchange 2010 SP3 allows Exchange 2010 servers to coexist with Exchange 2013 CU1, which is scheduled to be released in February 27th.
 
Please also note that this Service Pack requires schema updates.
 

Monday, February 11, 2013

Moving the Primary Active Manager

If, for some reason, the server currently hosting the Active Manager role of Primary Active Manager [PAM] fails, this role should automatically move to a surviving server of the Database Availability Group [DAG] which then takes ownership of the cluster quorum resource.

However, you might face a (rare) scenario where this doesn’t happen and you end up with a failed server and with Exchange still thinking that server is the PAM. Among other things, you will not be able to add/remove members to/from the DAG...

PAM decides which database copies will be active and passive, is responsible for getting topology change notifications and reacting to server failures. The DAG member that holds the PAM role is always the member that currently owns the cluster quorum resource (default cluster group).

So how do we move the PAM to one of the surviving servers? To achieve this, we need to use the command line and use the following Windows Clustering command to move the cluster quorum resource:
cluster.exe “DAG Name” /MoveTo:NewDAG
where “DAG Name” is your DAG Cluster Name and NewDAG is the node where you want to move the PAM to.

Sunday, February 3, 2013

Exchange 2013 Automatic Reseed

Microsoft has made great improvements in Exchange 2013, some of these around Database Availability Groups [DAGs]. For example, it is now possible to reseed a database from multiple sources, greatly reducing the overall time this operation usually takes. Another improvement, in this case a new feature, is called Automatic Reseed, or simply AutoReseed.

With Exchange 2010, if you lose the disk where your database is (either active or passive), Exchange will failover that database to another server (assuming it is part of a DAG with multiple copies). After that, an administrator will typically replace the faulted disk and reseed the database back to that server. This, of course, in scenarios where resilience through RAID or enterprise-level storage is not provided, which would cater for disk failures.

The purpose of AutoReseed is to overcome this situation and automatically restore database redundancy by using spare disks provisioned specifically for this. All it involves is pre-mapping volumes and databases using mount points that will be used for the databases and the reseed operation. In a simplistic way:
  1. Mount all volumes (used for databases and as spares) under a single mount point, C:\ExchangeVolumes for example;
  2. Mount the root directory of mailbox databases as another mount point under C:\ExchangeDatabases for example. Next, create two directories for each database: one for the database itself and another for the log files;
  3. Finally create the database(s).

 
Here is AutoReseed process flow:
  1. The Exchange Replication service periodically scans for database copies that have a status of FailedAndSuspended;
  2. If one is found, it does pre-requisite checks like checking if spare drives are available and ensuring nothing might prevent Exchange from automatic reseeding the database;
  3. If all the checks pass, the Replication service allocates and remaps a spare drive;
  4. Seeding is performed;
  5. Once seeding is complete, the Replication service checks if the seeded copy is healthy.

All an administrator needs to do now is simply replace the faulty disk and reconfigure it as a spare for the DAG!

To read all about this new feature and how to implement it, please check the article at MSExchange.org.

 

Sunday, January 20, 2013

Exchange Server 2013 Help Files Updated

The Exchange 2013 Help files (.chm) have been updated on January 18.
 
Here you can download the help files for both Exchange Server 2013 Hybrid and On-Premise deployments.

E-mail Recipient Number Distribution

Have you ever wondered what the distribution of the number of recipients per e-mail in your organization is?
 
The following script will go through every e-mail received by Exchange and group the results by the number of recipients.
Get-TransportServer | Get-MessageTrackingLog -ResultSize Unlimited -EventID RECEIVE -Start "07/05/2012 16:40" | ? {$_.Source -eq "STOREDRIVER"} | Select RecipientCount | Group RecipientCount | Select @{Name="Recipients"; Expression={[Int] $_.Name}}, Count | Sort Recipients

Alternatively, you can group them in batches depending on which format you want the output.
[Int] $1 = $2 = $5 = $10 = $30 = $50 = $75 = $100 = $150 = $200 = $250 = $big = 0

Get-TransportServer | Get-MessageTrackingLog -ResultSize Unlimited -EventID RECEIVE -Start "07/05/2012" | ? {$_.Source -eq "STOREDRIVER"} | Select RecipientCount | ForEach {
    If ($_.RecipientCount -eq 1) { $1++ }
    If ($_.RecipientCount -eq 2) { $2++ }
    If ($_.RecipientCount -gt 2   -and $_.RecipientCount -le 5)    { $5++ }
    If ($_.RecipientCount -gt 5   -and $_.RecipientCount -le 10)   { $10++ }
    If ($_.RecipientCount -gt 10  -and $_.RecipientCount -le 30)   { $30++ }
    If ($_.RecipientCount -gt 30  -and $_.RecipientCount -le 50)   { $50++ }
    If ($_.RecipientCount -gt 50  -and $_.RecipientCount -le 75)   { $75++ }
    If ($_.RecipientCount -gt 75  -and $_.RecipientCount -le 100)  { $100++ }
    If ($_.RecipientCount -gt 100 -and $_.RecipientCount -le 150)  { $150++ }
    If ($_.RecipientCount -gt 150 -and $_.RecipientCount -le 200)  { $200++ }
    If ($_.RecipientCount -gt 200 -and $_.RecipientCount -le 250)  { $250++ }
    If ($_.RecipientCount -gt 250 -and $_.RecipientCount -le 300)  { $300++ }
    If ($_.RecipientCount -gt 300) { $big++ }
}

Write-Host "1,                     $1"
Write-Host "2,                     $2"
Write-Host "Between 3 and 5,       $5"
Write-Host "Between 6 and 10,      $10"
Write-Host "Between 11 and 30,     $30"
Write-Host "Between 31 and 50,     $50"
Write-Host "Between 51 and 75,     $75"
Write-Host "Between 76 and 100,    $100"
Write-Host "Between 101 and 150,   $150"
Write-Host "Between 151 and 200,   $200"
Write-Host "Between 201 and 250,   $250"
Write-Host "Between 251 and 300,   $300"
Write-Host "More than 300,         $big"

Thursday, January 17, 2013

Exchange 2013 Database Mount Limit

A change introduced in Exchange 2013 that many administrators are not aware is the fact that with the Enterprise Edition of Exchange, you can now only mount up to 50 mailbox databases per server, a reduction in 50% from the 100 with Exchange 2010! The limit of the Standard Edition remains at 5 databases.

Highly available and resilient environments might have some problems when migrating from Exchange 2010 if they have servers with more than 50 databases (in big environments with 3 or 4 copies of each database it is not that uncommon). Therefore, a complete review of the current database layout might have to happen.

But why this change?! Basically it was introduced in order to ensure a good performance from the mailbox servers. Some of the reasons behind this change are the improvements made in some areas, which mean the mailbox servers consume more memory now... For example, Exchange 2013 uses Search Foundation instead of MSSearch in order to be consistent with SharePoint and to allow discovery searches across e-mail and documents. Search Foundation uses more memory and it seems it can take between 10 to 15% of available memory on a mailbox server.
Another change is the move of protocol handling from the Client Access Server [CAS] to the Mailbox server. It helps make the CAS more stateless and not so dependent on a particular mailbox server but it also increases the memory use on the mailbox server...

Note: the limit of 16 mailbox servers per DAG remains in Exchange 2013.

Tuesday, January 8, 2013

Dynamic Distribution Groups with MultiValued Attribute

Ever wondered how to use the Multi-Valued Attributes in Exchange 2010 SP2 (or above) with Dynamic Distribution Groups? The following example shows you how to do this:

First we use 3 users and set their ExtensionCustomAttribute1 attribute to something we want to use:
Set-Mailbox User1 -ExtensionCustomAttribute1 Area1,Area2,Area3
Set-Mailbox User2 -ExtensionCustomAttribute1 Area2,Area3,Area4
Set-Mailbox User3 -ExtensionCustomAttribute1 Area3,Area4,Area5

Now we create our dynamic groups based on the information we want to “filter”:
New-DynamicDistributionGroup -Name Area1 -RecipientFilter {ExtensionCustomAttribute1 -eq “Area1”}
New-DynamicDistributionGroup -Name Area2 -RecipientFilter {ExtensionCustomAttribute1 -eq “Area2”}
New-DynamicDistributionGroup -Name Area3 -RecipientFilter {ExtensionCustomAttribute1 -eq “Area3”}

If we want to make sure they are working as expected, we can easily return each group’s members:
$Group = Get-DynamicDistributionGroup Area1
Get-Recipient -RecipientPreviewFilter $Group.RecipientFilter

In the example above the group:
• Area1 will have User1;
• Area2 will have User1 and User2;
• Area3 will have User1, User2 and User3.

Monday, December 31, 2012

Check DAG Status

With Exchange 2010 and Database Availability Groups [DAGs], Microsoft greatly increases high availability and resilience in Exchange. But now, it is not only important to make sure your active mailbox databases are healthy and working fine, but it is also crucial to ensure your passive databases are healthy and ready to be mounted in case of necessity.

Microsoft System Center Operations Manager does a great job monitoring Exchange, but if you simply like to check for yourself, there are many cmdlets available. Two of the most important ones and most frequently used, in my opinion are the Get-MailboxDatabaseCopyStatus and Test-ReplicationHealth cmdlets.

Get-MailboxDatabaseCopyStatus will show status information about your databases that are part of a DAG. Using the following cmdlet, you can check all the databases in all the DAGs present in your environment:
(Get-DatabaseAvailabilityGroup) | ForEach {$_.Servers | ForEach {Get-MailboxDatabaseCopyStatus -Server $_}}

Using the Test-ReplicationHealth cmdlet will allow you to check all aspects of the replication and replay status, providing you with a complete overview of a Mailbox server in a DAG. This way, administrators can proactively monitor the continuous replication and the continuous replication pipeline, the availability of the Active Manager and the health and status of the underlying cluster service, quorum and network components.
(Get-DatabaseAvailabilityGroup) | ForEach {$_.Servers | ForEach {Test-ReplicationHealth -Server $_}}

Wednesday, December 12, 2012

Exchange Server Vulnerability Could Allow Remote Code Execution

Unfortunately, there seems to be another vulnerability in Exchange Server WebReady Document Viewing feature, this time with the third-party code Oracle Outside In libraries.

This security update resolves publicly disclosed vulnerabilities and one privately reported vulnerability in Microsoft Exchange Server.

The most severe vulnerabilities are in Microsoft Exchange Server WebReady Document Viewing and could allow remote code execution in the security context of the transcoding service on the Exchange server if a user previews a specially crafted file using Outlook Web App.
The transcoding service in Exchange that is used for WebReady Document Viewing is running in the LocalService account. The LocalService account has minimum privileges on the local computer and presents anonymous credentials on the network.

This security update is rated Critical for all supported editions of Exchange Server 2007 and 2010!

For more information and to download the update, please see Microsoft Security Bulletin MS12-080 - Critical

Exchange Server 2010 SP2 Update Rollup 5 v2 Released

Similar to what happened with Update Rollup 4, this one was released a few weeks ago but was almost immediately withdrawn due to a bug that affected DAGs...

Now version 2 has been released. For a full description of this RU, please check KB2785908  and to download it click here.

As with every RU or SP, Microsoft has updated the useful Exchange Server and Update Rollups Build Numbers wiki page.

I haven’t applied it on my lab yet, but will let you know as soon as I do.

Monday, December 10, 2012

Mailbox Size Increases when Transitioning to Exchange 2013

If you are transitioning from Exchange 2007/2010 to Exchange 2013, we will see that the reported size of the mailboxes will increase around 30 to 40%! Don’t be alarmed just yet. The actual space used by the mailbox database will not increase by 30% as this only refers to the attribution of space used by each individual mailbox.

Basically, Exchange 2013 now includes in the mailbox size attribute all the properties of items in a mailbox, thus providing a more accurate calculation of space taken by items in a mailbox and, therefore, the whole mailbox itself.

The problem with this is that, during a migration, users might exceed their mailbox quota when their mailbox is moved to Exchange 2013 and be prevented from sending and/or receiving e-mails...

So, in order to prevent this from happening, I suggest increasing everyone’s mailbox quota by 40% prior to their move. You can either do this at the mailbox database level if your users are using the database quotas, or individually on a per-user basis.

For example, if you want to increase by 40% the ProhibitSendQuota value for all users that are not using the database quota defaults, you can use the following cmdlet:
Get-Mailbox -ResultSize Unlimited -Filter {UseDatabaseQuotaDefaults -eq $False} | Where {$_.ProhibitSendQuota -ne "unlimited"} | ForEach {Set-Mailbox $_ -ProhibitSendQuota "$($($_.ProhibitSendQuota).Value.ToMB() * 1.4)MB" -WhatIf}

However, don’t forget to set the IssueWarningQuota or ProhibitSendReceiveQuota if you are using them! Note that this is not the best method as users might end up with a quota of 1523MB for example when the ideal value would be 1500MB...

Tuesday, December 4, 2012

Exchange 2013 Visio Stencil

Microsoft has recently released the new Visio Stencil for the entire Office 2013 suite. It contains more than 300 icons (servers, applications and services), mainly focused around Lync, SharePoint, and Exchange technologies and features.

To download it, please go here.

Friday, November 30, 2012

RPC Client Access Throttling Logging

By default, you have to use PerfMon counters to see how often throttling is occurring for RPC connections.

However, there is a way to have this information "properly" logged. To achieve this, modify the Microsoft.Exchange.RpcClientAccess.Service.exe.config file located in \Program File\Microsoft\Exchange Server\V14\Bin and add Throttling to the LoggingTag string so it looks like this:
<add key=”LoggingTag” value=”ConnectDisconnect, Logon, Failures, ApplicationData, Warnings, Throttling”/>

Now restart the RPC Client Access service and you will see this information in logs created in the “\Program Files\Microsoft\Exchange Server\V14\Logging\RPC Client Access” folder. When throttling happens, you will usually find the keyword “exceeded”.

This way, you can easily see when RPC Throttling kicks in, what it is doing and why!

Thursday, November 22, 2012

Office 365 Portal Login Error on Mobile Devices

Since early this week that whenever I try to login to an Office 365 “wave 15” tenant on a mobile device I get the following error message:

I have tried from an Android mobile phone and iPad, always with the same result...

I know for a fact that Microsoft is looking into this at the moment.

As a workaround, if you go to:
  • https://tenant_domain.sharepoint.com


you will be able to login directly to OWA or SharePoint. However, this from an iPad as from my android phone I get the error: “the page contains too many server redirects”...

I will update this post when I get more new on this.

Friday, November 16, 2012

Exchange 2013 Data Loss Prevention

Data Loss Prevention [DLP] is a system designed to detect a potential data breach/leakage incident in a timely manner and prevent it. When this happens, sensitive data such as personal/company information, credit card details, social security numbers, etc., is disclosed to unauthorized users either with malicious intent or by mistake. This has always been an important matter for most companies as the loss of sensitive data can be very damaging for a business. For many years now, there have been both software and hardware solutions that monitor data while:
in-use: end-user actions such as copying data to USB or printing it for example;
in-motion: network communications like e-mail, web traffic, Instant Messaging, etc.;
at-rest: data stored in file shares or on users’ drives.

Up until now, Exchange Administrators had to rely on 3rd-party solutions to achieve this, but some solutions would cause more harm than good and user productivity would suffer. With Exchange 2013, Microsoft now makes it possible to enforce compliance requirements for such data and control how it is used in e-mail. DLP is the new feature that allows administrators to manage sensitive data in Exchange!

To read the full article, please go to MSExchange.org - Exchange 2013 Data Loss Prevention.

Sunday, November 11, 2012

Default Junk E-Mail folder moved to a subfolder of Journal

A while back got a user saying he wasn’t receiving some e-mails. Straight away I asked for an example and searched the Message Tracking Logs for the e-mail, only to confirm it had been delivered.
Luckily for me, my search revealed something really useful too:
 
RunspaceId : b1156ba1-602e-434f-97c2-14822536234c
Timestamp : 05/11/2012 08:48:23
ClientIp :
ClientHostname : xxxxxxx
ServerIp :
ServerHostname : xxxxxxx
SourceContext : 08CE8549B7FC9C12;2012-11-05T08:48:23.828Z;0
ConnectorId :
Source : STOREDRIVER
EventId : DELIVER
InternalMessageId : 4039958
MessageId : <210c68f5fb76da439a65309fd835991f0c7ce3 data-blogger-escaped-nat10exc01="nat10exc01">
Recipients : { xxxxxxx@domain.com }
RecipientStatus : {Junk E-mail}
TotalBytes : 20527
RecipientCount : 1
RelatedRecipientAddress :
Reference :
MessageSubject : RE: Wednesday
Sender : xxxxxxx@external.domain.com
ReturnPath : xxxxxxx@ external.domain.com
MessageInfo : 2012-11-05T08:48:23.000Z;SRV=xxxxxxx.domain.com:TOTAL=0;SRV=xxxxx.domain.com:TOTAL=0
MessageLatency : 00:00:00.9060000
MessageLatencyType : EndToEnd
EventData : {[MailboxDatabaseName, mdb33], [DatabaseHealth, -1]}


The e-mail was delivered to the Junk E-mail folder (look at RecipientStatus)! :) Ok, job done! Not exactly... When I went to the user’s mailbox to check a couple of e-mails to see if they were actually Spam, I couldn’t find the Junk E-mail folder! For some strange reason, it got moved to inside the Notes folder!...



So, how do we move it back?! If you try to move any of the default folders like Inbox, Deleted Items, etc., you will simply receive an error message.
The only way to move these is to use MFCMapi:
1. Download MFCMAPI
2. Launch MFCMAPI
3. Go to Session -> Logon and Display Store Table
4. Select the outlook profile of the user and double-click “Mailbox - User Name”
5. Expand “Root Container”
6. Expand “Top of Information Store”
7. Locate Junk E-mail, right click it and select Copy
8. Highlight “Top of Information Store”, right click it and select Paste
9. Click OK
10. Check “COPY_SUBFOLDERS” and “FOLDER_MOVE” and click OK

Hope this helps!

Sunday, November 4, 2012

iOS 6 issues with Exchange - Update

This is an update post of the iOS 6 issues with Exchange post from early October.

Looks like Apple has released an update for iOS 6 (available via iTunes and wirelessly) which supposedly fixes the issues of this OS with Microsoft Exchange meetings!

“This update contains improvements and bug fixes, including:
• Fixes a bug that prevents iPhone 5 from installing software updates wirelessly over the air;
• Fixes a bug where horizontal lines may be displayed across the keyboard;
• Fixes an issue that could cause camera flash to not go off;
• Improves reliability of iPhone 5 and iPod touch (5th generation) when connected to encrypted WPA2 Wi-Fi networks;
• Resolves an issue that prevents iPhone from using the cellular network in some instances;
• Consolidated the Use Cellular Data switch for iTunes Match;
• Fixes a Passcode Lock bug which sometimes allowed access to Passbook pass details from lock screen;
• Fixes a bug affecting Exchange meetings

You can find details regarding this update here.

Friday, November 2, 2012

Exchange Server 2013 RTM Now Available

And here it is! The release-to-manufacturing [RTM] version of Exchange 2013 is now available for evaluation here!   :)

Monday, October 29, 2012

Lync Server 2013 RTM

You will be pleased to know that the RTM version of Lync Server 2013 is now available for a free 180-Day evaluation!