I got quite a decent surprise the other day whilst I was upgrading my “home” AD forest for W2K8 DCs, as you do ;-). I know this isn’t strange to a lot of folk but I have a functional forest at home that I use to support my household and the occasional family friend that may require access through my network whilst on a visit etc. This network also includes ISA 2006 (the best firewall out there by far!), a Certificate server and an Exchange server. This network is distinct and separate from my lab environment(s) which is/are essentially a VM environment where I can test stuff and crash and burn boxes to my hearts content.
But my home AD Forest has been around for a while as the diagram below shows:
That's approximately 7 and a half years if you look at the creationTime for the Domain Naming Context! A lot has gone on in that AD environment over the years and I most certainly didn't keep exact records. Wasn't that important an environment I guess.
Anyway, back to the jist: How many FSMO role holders do you have in a single domain Forest? I have always had a standard answer for that and it was 5. Two forest wide FSMO role holders: The Schema Master and the Domain Naming Master and Three Domain wide FSMO role holders: The PDCe, the RID master and the Infrastructure Master.
So, when my first and very old Windows 2003 DC died on me having served faithfully since it was an NT4 PDC, I seized the roles to my second Windows 2003 DC and moved in my first 2008 server and dcpromed it after running adprep /forestprep and /domainprep.
I then moved the FSMO roles back to the new Windows 2008 DC. Couple of days later, I decided, OK we might need an RODC here so lets RODCprep this environment. And that is where this story leads: adprep /rodcprep failed with the following error:
“Adprep could not contact a replica for partition DC=DomainDnsZones,DC=trucyber,DC=com
Adprep failed the operation on partition DC=DomainDnsZones,DC=trucyber,DC=com Skipping to next partition.
Adprep could not contact a replica for partition DC=ForestDnsZones,DC=trucyber,DC=com
Adprep encountered an LDAP error. Error code: 0x0. Server extended error code: 0x0, Server error message: (null).
Adprep failed the operation on partition DC=ForestDnsZones,DC=trucyber,DC=com Skipping to next partition.
Adprep completed with errors. Not all partitions are updated.”
I knew my FSMO role holders were moved ok and functional so what was this about. A quick Google brought up KB949257
And sure enough, a check on the FSMO Role Owner for the DomainDnsZones partition confirmed it:
C:\Users\austin>dsquery * cn=Infrastructure,dc=domainDnsZones,dc=trucyber,dc=com -attr fSMORoleOwner
fSMORoleOwner
CN=NTDS Settings,CN=tru2k3,CN=Servers,CN=manchester,CN=Sites,CN=Configuration,DC=trucyber,DC=com
Tru2k3 was my dead DC and the FSMO role owners for non domain naming contexts (NDNC) do not move or get seized when the forest and domain roles are moved!
Each NDNC has an Infrastructure Master which may or may not be on the same DC holding the Domain Infrastructure Master role. KB 949257 has a script to fix the issue or you can maually edit using adsiedit.
So, to the question, how many FSMO roles in a single domain forest? The answer I now know is it depends on how many application partitions or NDNCs exist in the domain. You’ll have the 5 we all know about and an IM role for each NDNC in the domain. We live and learn.