How to Determine if a Server is a PDC or BDC
Keywords: primary domain controller PDC backup domain controller BDC
Question:
Does anyone know of a way to determine a the status of an NT server programmatically, ie. read a registry value? In other words, how do you determine if the server is a Primary Domain Controller (PDC) or Backup Domain Controller (BDC), etc. ?Answer:
Maybe look at:wntServerType wntServiceInfin the Win32 Network Extender.Here's where it's located in the registry, so you can use RegQueryValue to retrieve it from HKLM\System\CurrentControlSet\Control\ProductOptions\ProductType, with:
RegQueryValue(@regmachine, "CurrentControlSet\Control\ProductOptions[ProductType]")ProductType will be one of three values:or it might appear as:
- SERVERNT - Stand Alone Server
- LANMANNT - Primary Domain Controller
- LANSECNT - Backup Domain Controller
WINNT = WorkStation LANMANNT = Enterprise Server SERVERNT = ServerA real quick way to determine the PDC is to do a "net time /domain:domainname". This always sets the time from the PDC, giving a message to that extent. You could pipe the output into a file and then parse it for "\\".I mention this because it is not always the case that the registry security allows lookups, specially if someone has run C2config against the registry.
We use this in our login and it works for both 4.0 and 3.51. Don't do a case sensitive compare as they are not always in caps.
Article ID: W13528Filename: Determine if a Server is an NT PDC.txt