Matt Ellis

Exchange UM: “Sorry, a system error has occurred.”

Posted by in Exchange, Lync, OCS

Today our UM server suddenly started giving an error when people tried to leave a voicemail. The error said: “Sorry, a system error has occurred. Please try again later.” No changes had been made to Lync or the UM environment for sometime. In the event log I noticed the following events: Event 1078, MSExchange Unified Messaging Event 1159, MSExchange Unified MessagingThe key piece of information here is the Unable to load DLL ‘WMVCore.dll’: The specified module could not be found. (Exception from HRESULT: 0x8007007E) error. A quick Google of the WMVCore.dll error revealed that…read more

1

0x80200049 error when Outlook 2007 tries to download the OAB…

Posted by in Exchange

I found a decent fix for the 0x80200049 error when my Outlook 2007 client continuously failed to download the OAB. This only affected my client and persisted throughout OST rebuilds, Outlook profile recreation and various other troubleshooting steps. I started to notice the BITS errors in the System Log and found out that the BITS transfer queue was full of jobs. Because Outlook uses BITS to download the OAB the transfer queue being full causes the OAB download to fail. The resolution was to run the following command to clear…read more

7

Exchange 2003 Mailbox Powershell Report

Posted by in Exchange, PowerShell

Right, this will probably be so horrifically out-of-date for some people, but recently I’ve been doing a few Exchange 2003 migrations and have realised the importance of getting all the data you need before performing these migrations is quite high. Sure, you can export the data you find in Exchange System Manager but what if you want other details like PrimarySMTPAddress or whether Email Address Policy is enabled for the user, or what their quotas are? This is where this script comes in. This script will give you a CSV…read more

6

Enable or Disable Outlook Anywhere based on Group Membership

Posted by in Exchange, PowerShell

Lets face it – security guys HATE Outlook Anywhere. So, it is highly likely you’ve stumbled onto this page because you’ve been asked to disable it outright or only enable it for the trusted few. In that case, this will hopefully help. The script below will enable or disable Outlook Anywhere based on the membership of a distribution group. It will then give you a CSV output of everything it’s done. Note: The script doesn’t currently recurse groups, so nested groups will not work. Also Note: The script runs a…read more

2

Exchange CCR Health Script

Posted by in Exchange, PowerShell

Download the script here: Get-CCRHealth Script If you administer a multi CCR cluster environment then it’s useful to know the specific state of your server without having to go and look for it. I find monitoring screens that offer a quick glance on health really useful, so for the purpose of this blog I have cleaned my script up a bit and have adapted it to offer 3 output types. First of all, I need to stress that you need to run this script from a server with Windows Failover Clustering…read more

8

Exchange 2013 & Lync 2013…

Posted by in Exchange, Lync, News

Some exciting news this evening in the world of Microsoft. Exchange 2013 and Lync 2013 seem really exciting evolutions of the software. I will be installing in my lab and will post anything interesting I find along the way. Matt

0

Exchange SCR Health Script

Posted by in Exchange, PowerShell

Download the script here: Get-SCRHealth.ps1 In the same way that Standby Continuous Replication (SCR) has to be configured using the Exchange Management Shell, it can also only be managed and monitored through the Shell too. I’m not sure how many people this will help as Exchange 2007 isn’t the latest and greatest but I’ve created a script to keep me updated with the state of my storage groups configured with Standby Continuous Replication (SCR). The script should work out of the box in any 2007 environment as it finds the SCR replicas…read more

8

Exchange RPC Client Access service won’t start…

Posted by in Exchange, PowerShell

I was asked to go and look at a new Exchange 2010 implementation today as they couldn’t get Outlook to connect. It was a single server implementation with all roles on one box but the first thing I noticed was that the Exchange RPC Client Access service was not started. Starting it just resulted in it stopping immediately. After looking in the Application log I found an error with Event ID 1002 MSExchangeRPC: Failed to register service principal name ExchangeMDB. Failed with error code Access is denied (5). After a…read more

5

Export FullAccess & SendAs permissions for Shared Mailboxes…

Posted by in Exchange, PowerShell

Ever been asked to get an export of all the assigned permissions to a group of mailboxes? With this script you’ll be able to export the Full Access and & Send As permissions for whatever group of mailboxes you wish. This script works on Exchange 2007 but there’s no reason why it won’t work for Exchange 2010 either. You can customise the $Mailboxes query to gather whatever mailboxes you wish to export the details for. This is just a Get-Mailbox query. The export will be in the form of a…read more

24

How to setup Office 365 without moving your DNS to Microsoft…

Posted by in Exchange, Lync, Office 365

I’ve recently setup a simple Office 365 deployment but instead of buckling to Microsoft and moving the DNS to their servers I wanted to set it up using my existing registrar for the DNS. The GUI at Office 365 doesn’t exactly make this crystal clear so I thought I’d show the steps involved in sorting it out. First, you need to add the custom domain to Office 365 and verify that you own it. On the Admin page, under Domains, click Add a domain. Type your domain and click Next….read more

2

Setting Distribution Group Delivery Restrictions via PowerShell…

Posted by in Exchange, PowerShell

Adjusting the delivery restrictions on distribution groups is quite a common task. The more members a group has the more of a problem this ends up being in big organisations. Setting the permissions in the Exchange Management Console (EMC) is simple enough when you have one or two people/groups to add to the allowed list. When you have many user/groups needing to be added across a massive range of groups then this is something your going to need to script. Now this is where it doesn’t quite work as expected….read more

20

Missing LastFullBackup Attribute on Mailbox Database..?

Posted by in Exchange, PowerShell

This is more of an annoyance if anything but I noticed today that while I could look on the Properties page of each mailbox database and see the LastFullBackup date and time this wasn’t reflected in the Get-MailboxDatabase -Server “SERVERNAME” | fl command. It was simply empty. It seems that if you’d like to get details such as LastFullBackup, Mounted, BackupInProgress or OnlineMaintenanceInProgress you need to use the -Status parameter. So, my command should have been: Get-MailboxDatabase -Server "SERVERNAME" -Status | fl I don’t know why, but that’s the way…read more

0

Get the active node of an Exchange 2007 CCR cluster using PowerShell…

Posted by in Exchange, PowerShell

There’s not a massively easy way of checking for the active node of a cluster without manually going into Failover Clustering or into the properties of the cluster in the EMC. Get-ClusteredMailboxServerStatus will give you the active node by getting the OperationalMachines attribute but if you’d like to use this in scripts or display it in a nice format then it’s not in the most helpful format (it’s an array). It usually looks something like this: {NODE1, NODE2 <Active, Quorum Owner>} Using the following script we can retrieve all the…read more

6

Get rid of trailing whitespace in DisplayName attribute…

Posted by in Exchange, PowerShell

Exchange 2007/2010 doesn’t like trailing whitespaces in the DisplayName of users. If a whitespace exists you will have issues when trying to manage the mailbox via EMC or EMS. This can be very annoying when you have automated systems that create users and append an annoying space to the end of the DisplayName. Here’s a command to find them and trim the whitespace off of the end of the DisplayName attribute: Get-Mailbox -Filter {DisplayName -like "* "} -ResultSize:Unlimited | ForEach {Set-Mailbox -Identity $_ -DisplayName&nbsp;$_.DisplayName.TrimEnd()}

0

Change a user’s ActiveSync policy back to take the Org default EAS policy…

Posted by in Exchange, PowerShell

By default, at the point of creation a user is created to take whatever is the organisation’s default policy. When this is changed to a specific EAS policy the ActiveSyncMailboxPolicyIsDefaulted property is changed to False. This can be annoying in the future as you may want them to revert back to the default policy for the organisation. This won’t happen is they’ve previously been assigned a specific EAS policy. To set the ActiveSyncMailboxPolicyIsDefaulted attribute back to true, just use the following command: Set-CASMailbox -Identity "USER-IDENTITY" -ActiveSyncMailboxPolicy:$null

0