I was chatting to a friend of mine and he was complaining of DCPROMO failing during a promotion of a member server to a domain controller. He could not understand why. With him about 17 000km away from me, I couldn’t just jump over and help him. He didn’t have VPN access for me and it was difficult to phone him to.

When I asked him for the DCPROMO debug log I got a few of these: “????????” so I went around and asked a few of my other friends if they knew that we write a debug log when you run DCPROMO and to my surprise I got the exact same reaction!!!

So for those of you that don’t know (for those of you that did know leave a comment its interesting to see how many know and how many don’t know, and be HONEST!):

  1. We do write a log that you can examine and it stores EXACTLY what is happening with the DCPROMO Wizard\
  2. The log is located on the machine that the DCPROMO was run on (I was asked if it was on a different machine)
  3. The location(presuming C is your system drive): C:\Windows\Debug\dcpromoui.001.log (Where 001 is the incremented number of times you have run DCPROMO)

This gives you loads of information about the DCPROMO process and can help you trouble shoot why a DCPROMO process failed to complete.

I must note that the new improved DCPROMO in Longhorn server has much more information and is vastly improved (really proud of the guys! go LH SVR team!).

Example Data (look at the end of the sample log for errors):

dcpromoui 240.248 0000 opening log file C:\WINDOWS\debug\dcpromoui.log
dcpromoui 240.248 0001 C:\WINDOWS\system32\Dcpromo.exe
dcpromoui 240.248 0002 file timestamp 03/24/2005 17:58:58.000
dcpromoui 240.248 0003 local time 03/09/2006 13:30:05.608
dcpromoui 240.248 0004 running Windows NT 5.2 build 3790 Service Pack 1 (BuildLab:3790.srv03_sp1_rtm.050324-1447) i386
dcpromoui 240.248 0005 logging flags 0001003C
dcpromoui 240.248 0006 Enter Computer::RemoveLeadingBackslashes
dcpromoui 240.248 0007 Enter Computer::Refresh
dcpromoui 240.248 0008 Enter IsLocalComputer
dcpromoui 240.248 0009 Enter RefreshLocalInformation
dcpromoui 240.248 000A Enter GetProductTypeFromRegistry
dcpromoui 240.248 000B Enter RegistryKey::Open System\CurrentControlSet\Control\ProductOptions
dcpromoui 240.248 000C Enter RegistryKey::GetValue-String ProductType
dcpromoui 240.248 000D ServerNT
dcpromoui 240.248 000E prodtype : 0x3
dcpromoui 240.248 000F Enter GetSafebootOption
dcpromoui 240.248 0010 Enter RegistryKey::Open System\CurrentControlSet\Control\SafeBoot\Option
dcpromoui 240.248 0011 HRESULT = 0x80070002
dcpromoui 240.248 0012 returning : 0x0
dcpromoui 240.248 0013 Enter DetermineRoleAndMembership
dcpromoui 240.248 0014 Enter MyDsRoleGetPrimaryDomainInformation
dcpromoui 240.248 0015 Enter MyDsRoleGetPrimaryDomainInformationHelper
dcpromoui 240.248 0016 Calling DsRoleGetPrimaryDomainInformation
dcpromoui 240.248 0017 lpServer : (null)
dcpromoui 240.248 0018 InfoLevel : 0x1 (DsRolePrimaryDomainInfoBasic)
dcpromoui 240.248 0019 HRESULT = 0x00000000
dcpromoui 240.248 001A MachineRole : 0x2
dcpromoui 240.248 001B Flags : 0x0
dcpromoui 240.248 001C DomainNameFlat : WORKGROUP
dcpromoui 240.248 001D DomainNameDns : (null)
dcpromoui 240.248 001E DomainForestName : (null)
dcpromoui 240.248 001F Enter IsDcInRepairMode
dcpromoui 240.248 0020 HRESULT = 0x00000000
dcpromoui 240.248 0021 Enter State::DetermineRunContext
dcpromoui 240.248 0022 Enter DS::GetPriorServerRole
dcpromoui 240.248 0023 Enter MyDsRoleGetPrimaryDomainInformation
dcpromoui 240.248 0024 Enter MyDsRoleGetPrimaryDomainInformationHelper
dcpromoui 240.248 0025 Calling DsRoleGetPrimaryDomainInformation
dcpromoui 240.248 0026 lpServer : (null)
dcpromoui 240.248 0027 InfoLevel : 0x2 (DsRoleUpgradeStatus)
dcpromoui 240.248 0028 HRESULT = 0x00000000
dcpromoui 240.248 0029 OperationState : 0
dcpromoui 240.248 002A PreviousServerState : 0
dcpromoui 240.248 002B Enter Computer::GetNetbiosName
dcpromoui 240.248 002C MSDC1-FSMO01
dcpromoui 240.248 002D Enter Computer::GetRole MSDC1-FSMO01
dcpromoui 240.248 002E role: 2
dcpromoui 240.248 002F NT5_STANDALONE_SERVER
dcpromoui 240.248 0030 Enabling advanced mode
dcpromoui 240.248 0031 Enter GetAdminToolsPath
dcpromoui 240.248 0032 HRESULT = 0x00000000
dcpromoui 240.248 0033 Enter FS::GetPathSyntax C:\Documents and Settings\Administrator
dcpromoui 240.248 0034 HRESULT = 0x00000000
dcpromoui 240.248 0035 Enter InitDnsClientConfigFlag
dcpromoui 240.248 0036 Enter RegistryKey::Open Software\Microsoft\Windows\CurrentVersion\AdminDebug\dcpromoui
dcpromoui 240.248 0037 Enter RegistryKey::GetValue-DWORD ConfigureDnsClient
dcpromoui 240.248 0038 HRESULT = 0x80070002
dcpromoui 240.248 0039 result = true
dcpromoui 240.248 003A Enter Start
dcpromoui 240.248 003B Enter IsCurrentUserAdministrator
dcpromoui 240.248 003C Current user is an admin
dcpromoui 240.248 003D Enter CheckCertService
dcpromoui 240.248 003E Enter State::GetRunContext NT5_STANDALONE_SERVER
dcpromoui 240.248 003F Enter NTService::IsInstalled CertSvc
dcpromoui 240.248 0040 Enter MyOpenService
dcpromoui 240.248 0041 Enter Win::OpenSCManager
dcpromoui 240.248 0042 Enter Win::OpenService CertSvc
dcpromoui 240.248 0043 HRESULT = 0x80070424
dcpromoui 240.248 0044 Enter CheckSafeBootMode
dcpromoui 240.248 0045 Enter RegistryKey::Open System\CurrentControlSet\Control\Safeboot\Option
dcpromoui 240.248 0046 HRESULT = 0x80070002
dcpromoui 240.248 0047 Enter CheckRoleChangeState
dcpromoui 240.248 0048 Enter MyDsRoleGetPrimaryDomainInformation
dcpromoui 240.248 0049 Enter MyDsRoleGetPrimaryDomainInformationHelper
dcpromoui 240.248 004A Calling DsRoleGetPrimaryDomainInformation
dcpromoui 240.248 004B lpServer : (null)
dcpromoui 240.248 004C InfoLevel : 0x3 (DsRoleOperationState)
dcpromoui 240.248 004D HRESULT = 0x00000000
dcpromoui 240.248 004E OperationState : 0x0
dcpromoui 240.248 004F Enter CheckPlatform
dcpromoui 240.248 0050 Enter Computer::GetNetbiosName
dcpromoui 240.248 0051 MSDC1-FSMO01
dcpromoui 240.248 0052 Enter Computer::GetRole MSDC1-FSMO01
dcpromoui 240.248 0053 role: 2
dcpromoui 240.248 0054 Enter CheckForNtfs5
dcpromoui 240.248 0055 Enter GetFirstNtfs5HardDrive
dcpromoui 240.248 0056 A:\
dcpromoui 240.248 0057 Enter FS::GetFileSystemType
dcpromoui 240.248 0058 Enter FS::GetRootFolder A:\
dcpromoui 240.248 0059 Enter FS::GetPathSyntax A:\
dcpromoui 240.248 005A HRESULT = 0x80070015
dcpromoui 240.248 005B C:\
dcpromoui 240.248 005C Enter FS::GetFileSystemType
dcpromoui 240.248 005D Enter FS::GetRootFolder C:\
dcpromoui 240.248 005E Enter FS::GetPathSyntax C:\
dcpromoui 240.248 005F HRESULT = 0x00000000
dcpromoui 240.248 0060 C:\ is NTFS5
dcpromoui 240.248 0061 C:\
dcpromoui 240.248 0062 Enter CheckWindirSpace
dcpromoui 240.248 0063 Enter checkDiskSpace
dcpromoui 240.248 0064 Enter FS::GetRootFolder C:\WINDOWS
dcpromoui 240.248 0065 Enter FS::GetPathSyntax C:\WINDOWS
dcpromoui 240.248 0066 Enter FS::GetAvailableSpace C:\
dcpromoui 240.248 0067 Enter CheckComputerWasRenamedAndNeedsReboot
dcpromoui 240.248 0068 Enter ComputerWasRenamedAndNeedsReboot
dcpromoui 240.248 0069 Enter Computer::GetActivePhysicalNetbiosName
dcpromoui 240.248 006A MSDC1-FSMO01
dcpromoui 240.248 006B Enter Computer::GetFuturePhysicalNetbiosName
dcpromoui 240.248 006C Enter RegistryKey::Open System\CurrentControlSet\Control\ComputerName\ComputerName
dcpromoui 240.248 006D Enter RegistryKey::GetValue-String ComputerName
dcpromoui 240.248 006E HRESULT = 0x00000000
dcpromoui 240.248 006F MSDC1-FSMO01
dcpromoui 240.248 0070 Enter IsTcpIpInstalled
dcpromoui 240.248 0071 TCP/IP is detected
dcpromoui 240.248 0072 Enter Computer::GetActivePhysicalFullDnsName
dcpromoui 240.248 0073 Enter Computer::ComposeFullDnsComputerName hostname: MSDC1-FSMO01 suffix:
dcpromoui 240.248 0074 MSDC1-FSMO01.
dcpromoui 240.248 0075 Enter Computer::GetFuturePhysicalFullDnsName
dcpromoui 240.248 0076 Enter Computer::GetActivePhysicalFullDnsName
dcpromoui 240.248 0077 Enter Computer::ComposeFullDnsComputerName hostname: MSDC1-FSMO01 suffix:
dcpromoui 240.248 0078 MSDC1-FSMO01.
dcpromoui 240.248 0079 Enter RegistryKey::Open System\CurrentControlSet\Services\Tcpip\Parameters
dcpromoui 240.248 007A Enter RegistryKey::GetValue-String NV Hostname
dcpromoui 240.248 007B Enter RegistryKey::GetValue-String NV Domain
dcpromoui 240.248 007C Enter Computer::IsDnsSuffixPolicyInEffect
dcpromoui 240.248 007D Enter RegistryKey::Open Software\Policies\Microsoft\System\DNSclient
dcpromoui 240.248 007E false
dcpromoui 240.248 007F
dcpromoui 240.248 0080 Enter Computer::ComposeFullDnsComputerName hostname: MSDC1-FSMO01 suffix:
dcpromoui 240.248 0081 HRESULT = 0x80070002
dcpromoui 240.248 0082 MSDC1-FSMO01.
dcpromoui 240.248 0083 Enter Dns::CompareNames MSDC1-FSMO01. vs MSDC1-FSMO01.
dcpromoui 240.248 0084 Calling DnsNameCompareEx_W
dcpromoui 240.248 0085 pszLeftName : MSDC1-FSMO01.
dcpromoui 240.248 0086 pszRightName : MSDC1-FSMO01.
dcpromoui 240.248 0087 dwReserved : 0
dcpromoui 240.248 0088 Result 0x1
dcpromoui 240.248 0089 relation: DnsNameCompareEqual
dcpromoui 240.248 008A No pending computer name change
dcpromoui 240.248 008B result = false
dcpromoui 240.248 008C Enter IsComputerNameOk
dcpromoui 240.248 008D Enter State::GetRunContext NT5_STANDALONE_SERVER
dcpromoui 240.248 008E Enter IsTcpIpInstalled
dcpromoui 240.248 008F TCP/IP is detected
dcpromoui 240.248 0090 Enter MyDnsValidateName MSDC1-FSMO01
dcpromoui 240.248 0091 Calling DnsValidateName
dcpromoui 240.248 0092 pszName : MSDC1-FSMO01
dcpromoui 240.248 0093 Format : 3
dcpromoui 240.248 0094 status 0x0
dcpromoui 240.248 0095 ERROR_SUCCESS
dcpromoui 240.248 0096 true
dcpromoui 240.248 0097 Enter ForceRemovalFSMOsSafelyOffMachineCheck
dcpromoui 240.248 0098 Enter State::IsForcedDemotion false
dcpromoui 240.248 0099 Non forced demotion, FSMOs will be taken care of somewhere else.
dcpromoui 240.248 009A Enter ShouldCancelBecauseMachineIsAppServer
dcpromoui 240.248 009B Enter State::GetRunContext NT5_STANDALONE_SERVER
dcpromoui 240.248 009C result = false
dcpromoui 240.248 009D Enter RunWizard
dcpromoui 240.248 009E Enter Wizard::AddPage
dcpromoui 240.248 009F id = 108 title = Welcome
dcpromoui 240.248 00A0 Enter Wizard::AddPage
dcpromoui 240.248 00A1 id = 164 title = Administrator Password
dcpromoui 240.248 00A2 Enter Wizard::AddPage
dcpromoui 240.248 00A3 id = 182 title = Application Directory Partitions
dcpromoui 240.248 00A4 Enter Wizard::AddPage
dcpromoui 240.248 00A5 id = 181 title = Confirm Deletion
dcpromoui 240.248 00A6 Enter Wizard::AddPage
dcpromoui 240.248 00A7 id = 183 title = Cannot Contact an Active Directory Domain Controller
dcpromoui 240.248 00A8 Enter Wizard::AddPage
dcpromoui 240.248 00A9 id = 150 title = Child Domain Installation
dcpromoui 240.248 00AA Enter Wizard::AddPage
dcpromoui 240.248 00AB id = 144 title = Configure Domain Naming Service Client
dcpromoui 240.248 00AC Enter Wizard::AddPage
dcpromoui 240.248 00AD id = 142 title = Summary
dcpromoui 240.248 00AE Enter Wizard::AddPage
dcpromoui 240.248 00AF id = 147 title = Network Credentials
dcpromoui 240.248 00B0 Enter Wizard::AddPage
dcpromoui 240.248 00B1 id = 163 title = Remove Active Directory
dcpromoui 240.248 00B2 Enter Wizard::AddPage
dcpromoui 240.248 00B3 id = 143 title = Install or Configure DNS
dcpromoui 240.248 00B4 Enter Wizard::AddPage
dcpromoui 240.248 00B5 id = 174 title = DNS Registration Diagnostics
dcpromoui 240.248 00B6 Enter Wizard::AddPage
dcpromoui 240.248 00B7 id = 156 title = Installation Failed
dcpromoui 240.248 00B8 Enter Wizard::AddPage
dcpromoui 240.248 00B9 id = 154 title = Installation Results
dcpromoui 240.248 00BA Enter Wizard::AddPage
dcpromoui 240.248 00BB id = 184 title = Force the Removal of Active Directory
dcpromoui 240.248 00BC Enter Wizard::AddPage
dcpromoui 240.248 00BD id = 158 title = New Domain Name
dcpromoui 240.248 00BE Enter Wizard::AddPage
dcpromoui 240.248 00BF id = 180 title = Forest Functional Level
dcpromoui 240.248 00C0 Enter Wizard::AddPage
dcpromoui 240.248 00C1 id = 171 title = Global Catalog
dcpromoui 240.248 00C2 Enter Wizard::AddPage
dcpromoui 240.248 00C3 id = 140 title = Configure TCP/IP
dcpromoui 240.248 00C4 Enter Wizard::AddPage
dcpromoui 240.248 00C5 id = 159 title = NetBIOS Domain Name
dcpromoui 240.248 00C6 Enter Wizard::AddPage
dcpromoui 240.248 00C7 id = 145 title = Create New Domain
dcpromoui 240.248 00C8 Enter Wizard::AddPage
dcpromoui 240.248 00C9 id = 157 title = New Site
dcpromoui 240.248 00CA Enter Wizard::AddPage
dcpromoui 240.248 00CB id = 162 title = Shared System Volume
dcpromoui 240.248 00CC Enter Wizard::AddPage
dcpromoui 240.248 00CD id = 123 title = Database and Log Folders
dcpromoui 240.248 00CE Enter Wizard::AddPage
dcpromoui 240.248 00CF id = 153 title = Select a Site
dcpromoui 240.248 00D0 Enter Wizard::AddPage
dcpromoui 240.248 00D1 id = 167 title = Permissions
dcpromoui 240.248 00D2 Enter Wizard::AddPage
dcpromoui 240.248 00D3 id = 141 title = Additional Domain Controller or Member Server
dcpromoui 240.248 00D4 Enter Wizard::AddPage
dcpromoui 240.248 00D5 id = 146 title = Domain Controller Type
dcpromoui 240.248 00D6 Enter Wizard::AddPage
dcpromoui 240.248 00D7 id = 148 title = Additional Domain Controller
dcpromoui 240.248 00D8 Enter Wizard::AddPage
dcpromoui 240.248 00D9 id = 169 title = Copying Domain Information
dcpromoui 240.248 00DA Enter Wizard::AddPage
dcpromoui 240.248 00DB id = 168 title = Directory Services Restore Mode Administrator Password
dcpromoui 240.248 00DC Enter Wizard::AddPage
dcpromoui 240.248 00DD id = 5000 title = Operating System Compatibility
dcpromoui 240.248 00DE Enter Wizard::AddPage
dcpromoui 240.248 00DF id = 152 title = New Domain Tree
dcpromoui 240.248 00E0 Enter Wizard::ModalExecute
dcpromoui 240.248 00E1 Enter FS::AppendPath C:\WINDOWS\system32
dcpromoui 240.248 00E2 Enter WelcomePage::OnInit
dcpromoui 240.248 00E3 Enter State::GetRunContext NT5_STANDALONE_SERVER
dcpromoui 240.248 00E4 Enter WelcomePage::OnSetActive
dcpromoui 240.248 00E5 Enter DCPromoWizardPage::OnWizNext
dcpromoui 240.248 00E6 Enter WelcomePage::Validate
dcpromoui 240.248 00E7 Enter State::GetRunContext NT5_STANDALONE_SERVER
dcpromoui 240.248 00E8 Enter Wizard::SetNextPageID id = 5000
dcpromoui 240.248 00E9 push 108
dcpromoui 240.248 00EA Enter SecureCommWarningPage::OnInit
dcpromoui 240.248 00EB Enter SecureCommWarningPage::OnSetActive
dcpromoui 240.248 00EC Enter DCPromoWizardPage::OnWizNext
dcpromoui 240.248 00ED Enter SecureCommWarningPage::Validate
dcpromoui 240.248 00EE Enter State::GetRunContext NT5_STANDALONE_SERVER
dcpromoui 240.248 00EF Enter Wizard::SetNextPageID id = 140
dcpromoui 240.248 00F0 push 5000
dcpromoui 240.248 00F1 Enter InstallTcpIpPage::OnInit
dcpromoui 240.248 00F2 Enter InstallTcpIpPage::OnSetActive
dcpromoui 240.248 00F3 Enter IsTcpIpInstalled
dcpromoui 240.248 00F4 TCP/IP is detected
dcpromoui 240.248 00F5 Enter IsTcpIpFunctioning
dcpromoui 240.248 00F6 Calling GetIpAddrTable
dcpromoui 240.248 00F7 dwNumEntries: 2
dcpromoui 240.248 00F8 entry 0
dcpromoui 240.248 00F9 dwAddr 0 (0.0.0.0)
dcpromoui 240.248 00FA is loopback/broadcast — skipping
dcpromoui 240.248 00FB entry 1
dcpromoui 240.248 00FC dwAddr 100007F (127.0.0.1)
dcpromoui 240.248 00FD is loopback/broadcast — skipping
dcpromoui 240.248 00FE TCP/IP is NOT functioning
dcpromoui 240.248 00FF Enter DCPromoWizardPage::OnWizNext
dcpromoui 240.248 0100 Enter InstallTcpIpPage::Validate
dcpromoui 240.248 0101 Enter IsTcpIpInstalled
dcpromoui 240.248 0102 TCP/IP is detected
dcpromoui 240.248 0103 Enter IsTcpIpFunctioning
dcpromoui 240.248 0104 Calling GetIpAddrTable
dcpromoui 240.248 0105 dwNumEntries: 2
dcpromoui 240.248 0106 entry 0
dcpromoui 240.248 0107 dwAddr 0 (0.0.0.0)
dcpromoui 240.248 0108 is loopback/broadcast — skipping
dcpromoui 240.248 0109 entry 1
dcpromoui 240.248 010A dwAddr 100007F (127.0.0.1)
dcpromoui 240.248 010B is loopback/broadcast — skipping
dcpromoui 240.248 010C TCP/IP is NOT functioning
dcpromoui 240.248 010D Enter Popup::Info
dcpromoui 240.248 010E MessageBox: Active Directory Installation Wizard : The TCP/IP networking protocol must be properly configured in order to proceed. Complete the configuration.
dcpromoui 240.248 010F Enter Wizard::SetNextPageID id = -1
dcpromoui 240.248 0110 Enter Wizard::Backtrack
dcpromoui 240.248 0111 id = 5000
dcpromoui 240.248 0112 Enter SecureCommWarningPage::OnSetActive
dcpromoui 240.248 0113 Enter Wizard::Backtrack
dcpromoui 240.248 0114 id = 108
dcpromoui 240.248 0115 Enter WelcomePage::OnSetActive
dcpromoui 240.248 0116 Enter DCPromoWizardPage::OnQueryCancel
dcpromoui 240.248 0117 Enter State::GetRunContext NT5_STANDALONE_SERVER
dcpromoui 240.248 0118 Enter Popup::MessageBox
dcpromoui 240.248 0119 MessageBox: Active Directory Installation Wizard : Are you sure you want to quit the Active Directory Installation Wizard?
dcpromoui 240.248 011A Enter ControlSubclasser::UnhookWindowProc
dcpromoui 240.248 011B Enter ControlSubclasser::UnhookWindowProc
dcpromoui 240.248 011C Enter ControlSubclasser::UnhookWindowProc
dcpromoui 240.248 011D Enter ControlSubclasser::UnhookWindowProc
dcpromoui 240.248 011E Enter ControlSubclasser::UnhookWindowProc
dcpromoui 240.248 011F Enter ControlSubclasser::UnhookWindowProc
dcpromoui 240.248 0120 Enter ControlSubclasser::UnhookWindowProc
dcpromoui 240.248 0121 Enter ControlSubclasser::UnhookWindowProc
dcpromoui 240.248 0122 exitCode = 0
dcpromoui 240.248 0123 closing log