Exchange 2013 CU5 – Organization preparation failure – An Active Directory error 0x51 occurred when trying to check the suitability of server

When you run setup to upgrade Exchange server 2013, it checks prerequisites and one of its actions is to contact Active Directory to check schema version for possible need to update. In my case the problem was, that error 0x51 occured. I was checking what is happening. The first thing was to run netdom query fsmo command to gather which FSMO roles were placed on failing DC1. As it was during Schema version check, I was mostly iterested if Schema master role is present there…. and it was, No I was wondering what is the problem. I went to OU=Domain controllers in ADUC and checked DCs. I realised that Schema master role is running on non GC domain controller.

Solution: To run setup successfully seize FSMO Schema master role on DC with GC in the same AD site as Exchange server.

Windows Server 2012+ and net-framework-core package installation error (unable to locate source files)

I have faced a problem with net-Framework-core package installation. As you probably know, this package is deprecated, but still available, when you specify source. It can be installed by command

Add-WindowsFeature net-Framework-core -Sources <path to Windows Server 2012 installation media>\Sources\SxS

If that doesnt work, you should check several things:

  • Is the installation media from the same build as current OS (should be)
  • Isnt it corrupted
  • Sometimes it is helpful to map installation media on another server and use UNC path instead of local
  • In my case problem was in Windows Update Services setting. The registry key stated, no automatic update is possible and WUS is used for updates.

Solution: Locate registry key below, change value to “0” and install net Framework core feature. After done, change back to “1” – if still no go, change value to 0 and reboot server prior to install.





The counter list and portability (read I/O operations)

An ExRAAP scanning detected this issue “The read I/O operations latency is greater than expected for an Exchange database” with an advice I started to monitor related performance counters according to post Analysing Exchange Server 2010 Jetstress BLG Files By Hand which contains also the following table:

7- 8- 2014 12-15-22Time to time I needed to check read I/O operations without a Data Collector Set, but I did not want to have the counter list/settings dependent on particular server (i.e. the server below hosts mailbox database MDB01 or MDB05 but not MDB02 and I want to have counters for all of them and I do not mind that some counter will not work).

7- 8- 2014 12-03-147- 8- 2014 12-44-28Well, I saved the settings from the server into HTML file and modify its content for 18 databases.

  • Changing value: <PARAM NAME=”CounterCount” VALUE=”18″/>
  • Adding parameters for missing databases (be careful you have to always use unique PARAM NAME):7- 8- 2014 12-59-42After that I could check the latency by pasting the same counter list on any server.

7- 8- 2014 13-12-18


Exchange Cmdlet Statistics

You can use administrator audit logging in Microsoft Exchange Server to record actions taken by a user or administrator that make changes in your organization. By keeping a log of the changes, you can trace a change to the person who made it. You can also augment your change logs with detailed records of the change as it was implemented, use the records to comply with regulatory requirements and requests for discovery, and so on…. [source].

Yes, yes, the auditing is very useful. But I wanted to show you how could look a cmdlet statistic for a month:

PS C:\> Search-AdminAuditLog -StartDate $(get-date).addMonths(-1) -ResultSize 100000 -IsSuccess $true|select CmdletName|
group CmdletName|sort count -Descending|ft count,name -a

Count Name
----- ----
12318 Set-MailboxFolderPermission
12307 Set-CalendarProcessing
 8752 Set-MailboxAutoReplyConfiguration
 5860 Set-Mailbox
  678 Add-MailboxFolderPermission
  645 Set-User
  174 Add-DistributionGroupMember
  163 Add-MailboxPermission
  126 Remove-DistributionGroupMember
   98 Remove-MailboxFolderPermission
   89 Add-ADPermission
   84 Remove-MailboxPermission
   71 Enable-Mailbox
   26 Set-InboxRule
   24 Set-DistributionGroup
   18 Clean-MailboxDatabase
   16 Remove-ADPermission
   16 Remove-Mailbox
   16 Set-CASMailbox
    8 New-MailContact
    6 Remove-ActiveSyncDevice
    6 Disable-Mailbox
    5 Remove-MailContact
    4 New-DistributionGroup
    3 New-InboxRule
    2 Remove-AcceptedDomain
    2 Enable-DistributionGroup
    2 Set-SendConnector
    1 Update-Recipient
    1 New-MoveRequest
    1 Update-MovedMailbox
    1 Add-PublicFolderClientPermission
    1 New-SendConnector
    1 Remove-DistributionGroup
    1 New-MailboxSearch
    1 Disable-InboxRule
    1 Remove-InboxRule

Note: Cmdlets that begin with the verb Test, Get and Search aren’t logged by default.