Wednesday, August 28, 2013

How to get rid of a dead exchange 2013 server from Active Directory

So if you are a nerd like me, its entirely possible you have a home domain
I created one, and installed exchange 2013.
Sadly, I installed it on a virtual and the host box had an issue

The vhdx for the mail server was on the drive that failed
I hadnt gotten to backing it up yet

Anyway, I now had an orphan set of structures in the active directory
You will find out when you go to create the new mail server, and it starts nagging you for a recovery
It thinks you will be able to restore it.
Wasn't happening

So you can recover from this without recreating the entire domain, which is a hassle
You have to remove all remnants of exchange from the ad directory stuff

There is a great article on how to do it
Go here - http://blog.dargel.at/2012/11/20/complete-remove-exchange-2013-using-adsiedit/

However, thats not all of it

I had a few accounts that had mailboxes created for them on the old server
They showed up in the new server, but it was whining about the mailbox database being corrupt and lost
Which is correct.

So the last steps you need to do is to get rid of the accounts in exchange using ecp
You can do it for the non-privileged accounts by just disabling the account in exchange
This will clean up all the entries

When you try to do this on administrator, it wont work
There isn't enough privilege on the ecp web site to do it
You have to do it by hand with ADSI Edit
Go through all the administrator properties and clear out the ones that have to do with exchange
They usually start with msExch

However, there are some non-obvious ones
They are not in the msExch range

The way I found them was to compare a user without a mailbox created to one that is
Its a pain, but it works

The final kicker, ADSI Edit doesnt know how to edit everything
Eventually you will have to use powershell to clear out the remaining attributes with the set-aduser cmdlet
There is one for msExchPolicy and msExchWhenMailboxCreated that wouldnt clear except this way

But its possible!



Thursday, June 27, 2013

Visual Studio settings needed for a fault contract to work in WCF Services

Having lost a day to this, I have to write this solution up

In order for the service side exception to pass over to the client side in WCF, two settings in the debugging section of the Visual Studio IDE have to be turned off

1) Just My Code
2) The Exception Assistant

Grrr

Monday, May 13, 2013

The equivalent to InvokeRequired in WPF


In WPF, this was moved out of the Control/UIElement hierarchy, and into the dispatcher.
The equivalent is Dispatcher.CheckAccess and Dispatcher.Invoke.
You should be able to do:
if (someControl.Dispatcher.CheckAccess())
      UpdateUI();
else
    someControl.Dispatcher.Invoke(new Action(UpdateUI));

Friday, March 1, 2013

Windows 8 - Cant see network shares in dialogs for programs running elevated

I had an issue with Visual Studio not seeing projects that were on network shares, and programs not seeing network shares in dialog boxes. The common factor was the programs were running at UAC elevated level

If that happens to you, as it did to me, set the following registry entry

In HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System, add a DWORD called EnableLinkedConnections and set it to 1 (True)