Category Archives: exchange

exchange stuff may 2016

Hi all – it is traditional to start this with “it’s been a while”…

Contents:

Rollups and cumulative updates

Useful and interesting links

Blog articles

Interesting kb articles

Hot news…

FREE exchange 2016 online training course provided by Microsoft on edX, complete with exams and hands on labs (but no videos- it’s all reading, by the look). There are three pretty cheap ones there as well as the initial infrastructure course. It looks like about 20 hours of free stuff (they reckon…). Given the lack of 2016 material on MVA at the moment (all MVA exchange stuff), it’ll have to do, I guess. Give it a go. It’s free.


Rollups

First up – We appear to be falling behind a bit with our rollup rollouts, so it is likely there will be a new Exchange Stabilisation project shortly. For the avoidance of doubt, I’ll restate the Microsoft support policies:

Exchange 2013/2016 – you are supported by Microsoft on the latest and next latest CU only.

Exchange 2010 – if you are on service pack 3 you are in extended support until November 2020

Exchange 2007 – if you are on service pack 3 you are in extended support until November 2017

Exchange 2003 – you are unsupported. No, really.

With 2007/2010, while you may be supported on sp3 rollup1, it is my experience that unless the problem is a simple configuration issue you will be asked to update to the latest rollup as part of the troubleshooting process. They hate analysing old code.

the latest rollups were released March 15th, and are here:


Useful and interesting links

As part of an investigation last week, I came across a highly useful article that references loadbalancer settings for exchange 2013 – they are the same as for 2010, but it’s nice to have that stated explicitly – it also suggests a great list of other useful and exciting things to do to stave off ever having to log a support call. I know I sent it out earlier, but it bears repeating.

Our colleague Mark Bodley has hunted out a number of extremely useful links:

Database corruption and dirty shutdown decigeons* tree on Exchange server pro. There’s a picture. It’s great. print it out and stick it over your desk.

He emailed a reminder of how to upgrade the CU on Exchange 2013 and 2016, along with some extremely useful links to scripts written by our friend and colleague, Michael Van Hybrid (yes, he’s on the GAL!):

  Not sure if you are aware that the recommend steps for installing CU updates on E2013/2016 are a bit different to what we may have gotten used to with Exchange 2010 – assuming that your local hostile SDM ever agreed to an update!!

There’s an article on the steps required for Exchange 2013 SP2 2016 at http://exchangeserverpro.com/installing-cumulative-updates-on-exchange-server-2016/ with 2013 being quite similar. Confusingly though Exchange continues to ship with the StartDAGServerMaintenance.ps1 scripts, these appear really to be for 2010 and should not be used on 2013 or later.

Michael van Horenbeeck has written 2 scripts for starting and stopping maintenance mode on Exchange 2013 and as they support a multi-role deployment they should work for 2016. Certainly looking at the above article, the steps for 2016 are the same as for an E2013 Multi-role server.

The scripts are at :-

· Stop-ExchanegServerMaintenanceMode.ps1 : https://gallery.technet.microsoft.com/scriptcenter/Exchange-Server-2013-77a71eb2

· Start-ExchanegServerMaintenanceMode.ps1 : https://gallery.technet.microsoft.com/scriptcenter/Exchange-Server-2013-ff6c942f

The exchange 2010 search troubleshooting guide – invaluable. Note this is for exchange search, not instant search – outlook uses exchange search in online mode, and instant search in cached mode – instant search is based on windows search, and searches the .ost file, not the server. Shall I bore you with exchange store search…? No? ok. Be aware that exchange 2013 has a different search engine again – Microsoft search foundation. try this article.

Understanding the Outlook Connection Status window. Recently (slightly) updated.

How to troubleshoot free/busy issues in a hybrid deployment of on-premises Exchange Server and Exchange Online in Office 365

The latest guided walkthroughs for Office servers – lync, exchange online, office 365 etc – are here. Some of them are brand shiny and new, others are a little long in the tooth. PF repl for 2003? Wow.


Blog articles

Rhoderick Milne explains why Network Location Profiles are giving you neckache – I’ve come across this myself, it stops Exchange working properly, and is tricky to spot.

The PFE Exchange 2013 tips and tweaks post (also Mr Milne). The 2010 article was a standard. You need to read this if you look after 2013, or are about to. CSAs should read it also…

Anyone looking at moving from 2007 to 2013 should review the links from this 2013 upgrade workshop.

My friend Ingo has an update to his activesync user script here: Get-ActiveExchangeUsers 2.0

Released: March 2016 Quarterly Exchange Updates on the official “you had me at EHLO…” blog.

Deferred Lagged Copy playdown in Exchange 2016

Messing around with how powershell proxying works causes headaches. Read this to make sure you are aware of how cu11/cu12 will affect you.

Exmon is finally available for Exchange 2013 and 2016


Interesting KB articles

Outlook

May 3, 2016, update for Outlook 2016 (KB3115101)

Office 2016 Applications crash or cannot start

Lync 2013 (Skype for Business) or Outlook 2013 Crash after installing the april 2016 upates

Performance problems when you try to access folders in a secondary mailbox in Outlook –I know at least one account is struggling with this.

Exchange

“The remote server returned an Error 404” or "HTTP request has exceeded the allotted timeout" error when you move a mailbox from on-premises Exchange Server to Exchange Online

Intermittent "500" error occurs for EWS requests in an Exchange Server 2013/2007 coexistence scenario

"Cannot display the folder properties" or "could not be updated" error when Exchange hybrid deployment users open a room calendar in Outlook

Can’t open a shared folder in Outlook on the web in Exchange Server

Users in your Exchange 2013-based hybrid deployment experience mail issues after April 15, 2016

Incorrect output when you run the Get-CASMailbox cmdlet to view the HasActiveSyncDevicePartnership attribute

"Cannot display the folder properties" or "could not be updated" error when Exchange hybrid deployment users open a room calendar in Outlook

"Nullable object must have a value" error when you run the Hybrid Configuration wizard

"Execution of the Get-WebServicesVirtualDirectory cmdlet has thrown an exception" error when you run the Hybrid Configuration wizard

Exchange Online users cannot access free/busy information of users in a non-Internet-facing Active Directory site

"The user isn’t assigned to any management roles" error when you run the Hybrid Configuration wizard

"Secure Mail Certificate on server is not bound to the SMTP Service" error when you run the Hybrid Configuration wizard

"The SMTP address template is invalid" error when you run the Hybrid Configuration wizard

"The length of the property is too long. The maximum length is 64" error message when you run the Hybrid Configuration wizard

"RequiredTls flag should be set to true if TlsCertificateName is specified" error when you run the Hybrid Configuration wizard

"The remote server returned an error: (403) Forbidden" error when you try to move mailboxes from on-premises Exchange Server to Exchange Online

"The term ‘Get-HybridMailflowDatacenterIPs’ is not recognized" error when you run the Hybrid Configuration wizard

On-premises users in an Exchange hybrid deployment can see availability but not capacity or description information of a resource when they schedule a meeting

Can’t reserve a resource for a meeting after the resource mailbox is migrated to Exchange Online

"An error occurred while working on your domain" when you try to verify your domain in Office 365 in an Exchange hybrid deployment

Users in a hybrid deployment can’t access a shared mailbox that was created in Exchange Online

Out-of-office replies and voting options in email messages between on-premises users and Exchange Online users do not appear correctly in a hybrid deployment

Slow mail delivery in an Exchange environment that has transport rules configured – I’m particularly keen that you understand this article – I’ve been asked a few times lately about transport rules, so anyone thinking of implementing them needs to understand that they can have a performance impact.

Outlook Anywhere users prompted for credentials when they try to connect to Exchange Server 2013 or Exchange Server 2016

Information about the Calendar Checking Tool for Outlook (CalCheck)

Feedback is of course welcome.

 


Roderick, by John Sladek. Probably my favouritest book about robots ever.

clip_image001

Advertisements

“Oi, Admin! you’re not as clever as you think you are!”, or, the importance of doing simple things right.

just had a call from a customer who was having terrible trouble exporting discovery search data to pst from Exchange 2013. The search was apparently running fine, but the download failed with a long error message.

clip_image001

i asked for problem steps recorder output to see what they were doing… (this is from my repro):

clip_image001[4]

if you can spot what they’re doing wrong without reading the error message, well done. have a muttley medal.

this throws the error message:

PLATFORM VERSION INFO Windows : 6.2.9200.0 (Win32NT) Common Language Runtime : 4.0.30319.34209 System.Deployment.dll : 4.0.30319.34274 built by: FX452RTMGDR clr.dll : 4.0.30319.34209 built by: FX452RTMGDR dfdll.dll : 4.0.30319.34274 built by: FX452RTMGDR dfshim.dll : 6.3.9600.16384 (winblue_rtm.130821-1623) SOURCES Deployment url : /microsoft.exchange.ediscovery.exporttool.application?name=ce66od_1&ews=https%3A%2F%2Flocalhost%2Fews%2FExchange.asmx">https://localhost/ecp/15.0.1076.9/exporttool/<servername>/microsoft.exchange.ediscovery.exporttool.application?name=ce66od_1&ews=https%3A%2F%2Flocalhost%2Fews%2FExchange.asmx ERROR SUMMARY Below is a summary of the errors, details of these errors are listed later in the log. * Activation of /microsoft.exchange.ediscovery.exporttool.application?name=ce66od_1&ews=https%3A%2F%2Flocalhost%2Fews%2FExchange.asmx">https://localhost/ecp/15.0.1076.9/exporttool/<servername>/microsoft.exchange.ediscovery.exporttool.application?name=ce66od_1&ews=https%3A%2F%2Flocalhost%2Fews%2FExchange.asmx resulted in exception. Following failure messages were detected: + Downloading /microsoft.exchange.ediscovery.exporttool.application?name=ce66od_1&ews=https://localhost/ews/Exchange.asmx">https://localhost/ecp/15.0.1076.9/exporttool/<servername>/microsoft.exchange.ediscovery.exporttool.application?name=ce66od_1&ews=https://localhost/ews/Exchange.asmx did not succeed. + The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. + The remote certificate is invalid according to the validation procedure.

so… what’s wrong there? well, the remote certificate is invalid. fine… but it’s the local machine… the url says “localhost”…. oh… sigh.

they’ve done the standard admin shortcut of going to localhost because they can’t be bothered to type out the unfeasibly long servername, and the client then throws an error, because “localhost” isn’t a subject alternative name on the cert, unsurprisingly. the little red address bar in the screenshot above is a clue, there.

sure enough, when they use the servername instead of the url, everything works like a charm:

clip_image001[6]

 

the lesson there is “do things right”. localhost will throw errors with https other than just needing to click through a cert warning, so don’t use it. if you are using it, and you get weird behaviour, try attaching to the site with a url that is actually on the SSL certificate.

also, a post script: when it says “if you experience problems, try clearing cookies and signing in again”, why not try clearing the cookies and signing in again, before you ring me up and tell me it doesn’t work? 😀

so, how was UCDayUK for you?

Cos it was brilliant for me. _44279618_fastshowbrilliant270[1]Everything about the day was spot on, and Andrew Price deserves hearty thanks and congratulations for organizing such a seamless, enjoyable and *useful* day.

The venue was spot on for this sort of thing – the National Motorcycle Museum near Birmingham. it was really plush, the staff were friendly and well organised, the food at lunchtime was great and there was gallons of free coffee, which was just as well.

The speakers were asked to be there early – 7:30am. i thought this was going to be quite a struggle, but it turns out i was so nervous i was awake from 5am – sigh. I was surprised by how big the venue was, and how many people were cramming into the room – Andrew said in the end there were about 300 people. i was expecting maybe 30…

The keynote was given by Ian Woolner of Microsoft, who is Senior Product Marketing Manager in charge of Skype for Business. it was a good presentation of upcoming features, some of which are extremely impressive, but the most interesting thing for me was his emphasis on partners and their value to Microsoft – it seemed that our main value was onboarding customers to O365…

After the keynote i watched Steve Goodman deliver a session on Exchange 2016 hybrid, which was great. i made a conscious decision to watch presentations from people that i “know” from their exchange community work, rather than technical stuff that was new to me, because i wanted to learn more about presenting, rather than product. This paid off in my opinion – if you want to learn how to do something, spend time with people who do it well. the only trouble is, i was so nervous i was struggling to concentrate.

No trouble with the second session, mind – Brian Reid did his usual fantastic job of delivering difficult technical content in a clear and engaging fashion, with a demo of using Powershell Desired State Configuration with Exchange.  The only problem was it meant i had to miss Gary Steere’s lecture on troubleshooting AutoDiscover. Gary is an MCT (and  MCM, and MVP), so i probably would have learnt a lot from watching him, but a Brian Reid session is too good an opportunity to miss.

time for lunch. it was tiptop. good buffet food, including some hot options, nice cakes that i didn’t have, because i’m not eating cake at the moment and more coffee. i had a chance to whizz round the exhibition, and would like to say a big thank you to IR software (and their Prognosis tool, which looks great) for saving the day with a moby powerbank, after idiot-boy here forgot to bring a usb cable to keep his phone charged. doh.

In the afternoon i went to watch Justin Harris’ talk on getting active directory ready for an office 365 migration. he had plenty of interesting stuff to say about directory hygiene, and the section on SIDHistory was good. After that i attended Dave Stork’s session on Exchange Tools, which was really interesting, but was plagued by tech glitches, which got me all worried again, so i spent the next hour going back over my slides rather than listening to Michael Van Hybrid’s session. i rocked up about 10 minutes before i was due to present, connected my laptop, went to put my glasses on and… disaster. they’ve gone. no glasses, and therefore no notes. I had to do the entire session from memory. I was told i appeared “slightly nervous”. Really? it’s only sheer terror stopped me breaking down and crying. still, i got through it without anyone throwing stuff at me, so i’m going to count it as a win. hopefully i wasn’t so awful i’ll not get the chance to improve next year.

All the slides from the day are available here: http://www.ucday.co.uk/ under the “past slides” link. i’ll put up my slides along with the audio when i get round to it. i can’t bring myself to listen back just yet, though.

I had a great time meeting up with a bunch of people I’ve not seen in ages, including a whole bunch of people off my MCM rotation – see below. there is absolutely nothing like an evening with that bunch for making me realise I’m actually thick as mince.

I cannot recommend this event highly enough. if you’re at all interested in unified comms, and the Microsoft UC technologies, then there is literally nothing better in the UK.

I’m really grateful for the chance to present, and I’m really grateful to Andrew Price and the rest of the UCDay team for putting on such a fab day. Thank you to to my various bosses who allowed me out for the day, and to Jon Wrennall for saying it was ok for me to represent Fujitsu. It’s a real pity that Mark Wilson couldn’t be there, not only cos he’s a great bloke, but because he is responsible for most of the actual work that went into what we did. A big thank you to Rob Awofadeju (not shown) an all, not only is he an ace Exchange consultant, but he’s got a great car, too

So… content indexing the passive node. Whassat all about, ‘en?

I surprised an architect at one of my customers, today. i told him that in a DAG, the search service on a server indexes the active copy of the database. he didn’t believe me. i asked him how he thought it worked, and he said “replication”. uh-uh.

it’s pretty easy to get that impression. after all, it’s sort of what the official documentation says is going on:

during the seeding process, DAG members with a passive mailbox database copy replicate the content index catalog from the DAG member that has the active mailbox database copy

but that’s during the *seeding* process. what about during normal operations?

After initial seeding, the server with the passive database copy gets message data from the server with the active database and performs content indexing locally.

What does that even mean? I’ll tell you… it means the server with the passive database makes a connection over the network to the *active* database, because the database has to be *mounted* for any MAPI activities to take place. That’s right, it makes a MAPI connection. This also has ramifications for your network, because a MAPI connection is a… anybody? That’s right; it’s a *client* connection, so the traffic is carried over the CLIENT network, not the REPL network.

 

But it isn’t going to be much traffic is it? I mean, it’s just a bunch of indexing, right?

 

Hmmm. You’da thunk, but no. Microsoft claim in their documentation for 2016 that indexing the local copy of a database, as opposed to the active copy, will save approximately 40% traffic. The ever-awesome Rhoderick Milne says in this thread it’s about equivalent to the total of REPL traffic.

 

The official documentation does carry a community contribution at the bottom stating in plain English how things work, and there’s a bunch more detail here. That last article while awesome, is most impressive for its tone of surprise.

why *wouldn’t* you want a group called “Content Submitters”?

I can’t think of a good reason…

My colleague Mark Bodley has drawn my attention to this KB article: Content Index status of all or most of the mailbox databases in the environment shows “Failed”. He has recently experienced this on an exchange 2013 CU5 estate, and, during the course of his research, has seen evidence that it occurs in CU6. My money would be on it persisting in CU7 as well. He points out that while the article states “all or most” of the databases will be affected, he only saw a minority of databases suffering.

if you read the article you can see that the problem is caused by Exchange failing a permissions check on an AD security group called “Content Submitters”, because it doesn’t exist. The fix is to ummm… create an AD security group called “Content Submitters” and grant full access to “Administrators” and “NetworkService”.

I can’t think of a single reason not to go ahead and create that group as part of an install. If you’ve already got Exchange 2013 up and running, why not create the group anyway? That’s one less cause of failed databases you need to worry about.

Exchange 2013: setting diagnostic logging levels the quick way

TL;DR how to set a bunch of logging levels with similar names to a specific level, plus a script that sets *everything* back to the defaults.

 

I’ve got a customer who is having trouble with Exchange 2013 and Active Directory, flip-flopping between DCs. i can see it occurring in the event log, but there’s no suggestion of what the problem might be. No worries, lets just hoik* the logging level up on ADAccess, and have a look at what’s happening.mmmm…

first problem with that; with the demise of anything approaching a usable GUI in exchange 2013, we’ll have to use powershell. it’s the “set-eventloglevel” cmdlet that i need, but usage examples are pretty thin on the ground. in fact, there’s just one.

Set-EventLogLevel -Identity "Exchange01\MSExchangeTransport\SmtpReceive" -Level High

which is peachy, but i don’t know which of the many adaccess logging objects i need. there are quite a few:

image

i don’t fancy running that cmdlet ten times, and my customer fancies it even less. what we need is some powershell magic. Why don’t we get the objects, and then feed them via the pipeline into the set-eventloglevel cmdlet? we can use the get-eventloglevel cmdlet. unfortunately it returns a great long list of objects, so we’ll need to filter them.

image

oh well, worth a try**. to do that we’ll need the where-object cmdlet and the “–like” comparator.

get-EventLogLevel | Where-Object {($_.identity) –like “*adaccess*”}

image

now we can feed that straight into the set-eventlogginglevel cmdlet:

get-EventLogLevel | Where-Object {($_.identity) –like “*adaccess*”} | set-EventLogLevel –level medium

image 

you’ll not want to leave it there, though. that’ll fill your event log up quicksmart. once you’re done, set everything back. the handy “default” radio button that used to work in 2010 is gone:

image

 

so what you’ll need is a little script that puts everything back where you found it. if you run get-eventloglevel you’ll see that nearly everything is set at lowest, but there are one or two exceptions:

image

is that MSExchange RBAC\RBAC that’s set to low, there? god knows. my eyesight isn’t all that. let’s run a bit more powershell and dump out all the objects that aren’t set to lowest:

image

Bugger. that didn’t work. let’s run get-eventloglevel | gm and find out why .level didn’t select the –level parameter:

image

aha – why call your property after the parameter it sets? what we want isn’t called .level, it’s called .eventlevel. duh.

image 

great, so everything needs to be set to “lowest” apart from those objects.

so, we could run a script that sets everything to ”lowest”, and then sets them to”low” afterwards, except… what about those “2”s there. you can’t set a value of 2 with set-EventLogLevel .I’ve tried. there’s two things we could do there, either ignore them, or use the registry powershell provider to set them back to 2 afterward. ignoring them is the easiest way, isn’t it? mm?

 

so my script looks like this:

<# this script returns Exchange 2013 server diagnostic levels to their default.

The first line sets everything but "msexchange oauth\server" and

"msexchange backendrehydration\server" objects to "lowest".

these objects are set to 2 by default, a value that can’t be set using set-EventLogLevel.

you can set them in the registry at

HKLM\currentcontrolset\services\msexchange backendrehydration\diagnostics

and

HKLM\currentcontrolset\services\msexchange oauth\diagnostics

the rest of the script sets the exceptions to their correct level

this script will only work on the local server, obviously#>

Get-EventLoglevel | where-object {($_.eventlevel) -notlike "2"} | set-eventloglevel -level lowest

set-eventloglevel -identity "MSExchange RBAC\RBAC" -level low

set-eventloglevel -identity "MSExchange ADAccess\Topology" -level low

set-eventloglevel -identity "MSExchange ADAccess\Validation" -level low

set-eventloglevel -identity "MSExchangeADTopology\Topology" -level low

set-eventloglevel -identity "MSExchange OAuth\Configuration" -level low

set-eventloglevel -identity "MSExchange BackEndRehydration\Configuration" -level low

how could it be improved? well, adding the two lines to set those values to 2 in the registry would make it quicker, rather than filtering them out. adding in a line for server identity that defaults to the local host would be good. signing it might be a good idea. maybe later.

 

why am i using “–notlike” in the first line, instead of “–ne”? i *think* it’s because the value is an integer, and –ne is interpreting the input as a string… whatever. “-ne” doesn’t work. “-notlike” does.

ttfn.

* yeah, that’s a word. hoik.

** turns out that get-EventLogLevel “msexchange adaccess*” DOES work though…never mind, this way is betterish.

exchange,windows and the terrifying leap second.

This leap second thing…

Baffling.

We had one in 2012. and in 2008.

I may be wrong, but I don’t recall the world ending. I’d look out the window and check, but I’m in Stevenage, so that might not be as informative as I’d hope.

Clocks get moved about all the time in exchange; just have a look on virtualised systems for this event:

Information

########

Microsoft-Windows-Kernel-General

1

None

The system time has changed to ‎2015‎-‎01‎-‎19T14:31:54.447000000Z from ‎2015‎-‎01‎-‎19T14:31:51.850000000Z.

Look! That exchange server *went back in time* to 3 seconds before. It is Dr Who’s mail server. So long as it isn’t enough to break Kerberos, it’ll be fine. (1 second forward won’t break kerb.)

We’ve seen shifts of six and seven minutes on some of our customers, and that causes issues, especially in DAGs; just one of the reasons I really really hate virtualised exchange servers.

Anyway, here are some links on it:

What’s all this about the Leap Second, and how does it affect the Microsoft Windows OS and other products?

How the Windows Time service treats a leap second

http://en.wikipedia.org/wiki/Leap_second

 

clip_image001

Support Learnings of Exchange

A happy New Year to you all – may it be peaceful and prosperous. To help you on your way, I urge you to read this article from Ross Smith IV on the EHLO blog:

http://blogs.technet.com/b/exchange/archive/2015/01/08/concerning-trends-discovered-during-several-critical-escalations.aspx

now you may read this and, if you’ve read my outpourings over the last few years, remark on the similarity… all I can say is “this is because I’m not lying to you”.

So what does Ross call out?

Software patching. He recommends you be on the latest patch, or the next oldest. I also recommend you leave it a week or so after release before contemplating investigating it, so that you are aware of all the issues that are introduced in the latest patch.

Change control. The article points out the necessity of implementing change control for ALL changes, including the simple ones; on the distaff, change control should not be an excuse for inaction. If your change control process is so sclerotic nothing ever happens, that is just as bad. Possibly worse…

 Complexity. Complexity is the enemy. It leads to unpredictable failure, and “grey areas” where everyone just shrugs their shoulders and says “not my problem, boss.” There is a conflict between solution architects, who relish devising clever solutions to complicated problems, and operations, who want to run solutions as cheaply as possible, and therefore prefer the simple. With a move to shared services, it is imperative* that we consider reducing complexity in everything we do.

Ignoring recommendations. Respect my authoritah! Not because I know more about it than you do, but because I’m speaking to people who do. People like Devin Ganger.

 Deployment practices. You didn’t fill in the role requirements calculator, did you? Or maybe you did, but made up all the input? your users get 4 mails a day. Yes they do. Uhuh. Perhaps you followed the advice from a vendor to turn off background database maintenance while running jetstress? There’s a reason they don’t write that stuff down, you know. Time spent here saves a geometric amount of time (and money) later on. You can’t repair bad design. By the way, there is no law against running through the role requirements calculator every now and then. I’ve checked. It’s a very interesting exercise.

 Historical data, AKA baselining, AKA capacity planning, call it what you want. If I had a pound for every customer that was surprised when they ran out of resource, I’d have 13 pounds. I’ve run webex sessions ion how to do this in the past – if you’d like me to run one again, let me know.

*you should now have at least a line in this week’s game of “captain kirk buzzword bingo”.

Packt are at it again

Those kind people at Packt have another offer; $5 for any book. any book at all.

They Say:

Following the success of last year’s festive offer, Packt Publishing will be celebrating the holiday season with an even bigger $5 offer.

From Thursday 18th December, every eBook and video will be available on the publisher’s website for just $5. Customers are invited to purchase as many as they like before the offer ends on Tuesday January 6th, making it the perfect opportunity to try something new or to take your skills to the next level as 2015 begins.

With all $5 products available in a range of formats and DRM-free, customers will find great value content delivered exactly how they want it across Packt’s website this Xmas and New Year.

I say:

there’s some really good books in the catalogue; 5 bucks for something like Michael Van Hybrid’s Exchange 2013 cookbook represents excellent value. more here: http://bit.ly/1AKtu5i

Where the hell did that 1TB limit come from?

TL;DR Exchange 2013 RTM std retains an undocumented feature from Exchange 2010; the 1TB limit on database size. This persists even after applying cumulative updates for databases created while Exchange was at RTM. The fix is to follow advice for Exchange 2010, and then move your mailboxes to a new database.

 

So what actually happened? Well, my customer experienced a forced dismount of a database. Digging through the event logs, there were these events:

image

When they tried to mount the DB, they saw this error:

image

Note the warning event occurred 24 hours before the error event. Also note that the size of the database really wasn’t 3.3 petabytes. As it happens, the customer was migrating huge and unwieldy mailboxes into the db at the time, so didn’t really have time to digest the warning.

That really looks like the sort of thing we might have seen on Exchange 2010, back in the day, but according to the literature, there is no 1024GB limit in Exchange 2013 standard, and never has been. The registry key referred to in Error event id 40011 doesn’t exist. So… what do we do? we follow the advice for Exchange 2010, here: How to prevent your Exchange Database Drives filling up completely and set the limit to, say, 3072GB. That’s not quite complete, though. It may work very well for 2010, but to get it to work in 2013 you need to use mount-database with the –force parameter. If you try and mount from the EAC (or without the –force) it will continue to fail. It will also need to be mounted with –force *every time*. ouch.

Which is why it’s worth writing  this blog article. Any database created with the RTM code will be affected by this, so anyone who has had Exchange Standard installed since the early days, or thought they had to install RTM and then install a CU on top of it, may see this problem as their databases grow. My advice is to consider moving mailboxes to a new database created  on a later CU.