Chad’s Quick Notes – Installing a Domain Controller with Server 2016 Core


I will admit with Windows Server 2012 R2 I usually installed the full gui version and then once I had the server the way I wanted it, I would uninstall the gui.  With this no longer being possible with Windows Server 2016 I had to dust off my notes on how to leverage sconfig and powershell to configure new domain controllers running Windows Server 2016 Core.  Here is my notes on what I did.

Setting up a DC to host a new domain.

Go through the installation and put in the new password.


In the core console run “powershell.exe”.

Then run:

   1: Rename-computer -newname 2016-DC01


Hold off on rebooting until after you set the Static IP and DNS.

Edit: Locate the Nic card you want to set up IP information for by running



Use the name of the adapter as the interfaceAlias.

   1: $ipaddress = ""
   2: $dnsaddress = ""
   3: New-NetIPAddress -InterfaceAlias Ethernet -IPAddress $ipaddress -AddressFamily IPv4 -PrefixLength 24


Update the DNS Server.

   1: Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses $dnsaddress


Restart the server.

   1: Restart-Computer

Log back into the server,

Edit: Great recommendation below is to make sure the Time Zone is set



Set-TimeZone -Id "Mountain Standard Time"


Install and configure the first Domain Controller in a new forest/domain named “”. (I have to many contoso labs built)

   1: Install-WindowsFeature AD-Domain-Services -IncludeManagementTools


   1: Install-ADDSForest -DomainName

Provide the safemodeadministratorpassword


Then confirm you want the server to be configured and rebooted.


The usual warnings should prompt and eventually be prompted for sign out.


Log back in and do some initial validation.

Validate the new DC


Make sure AD/DNS services are running

   1: Get-Service adws,kdc,netlogon,dns



Check for sysvol and netlogon shares

   1: Get-smbshare



Review logs

   1: get-eventlog "Directory Service" | select entrytype, source, eventid, message
   2: get-eventlog "Active Directory Web Services" | select entrytype, source, eventid, message


With this being the first DC shouldn’t be to much to check

Making a Windows 2016 Server a Domain Controller in an existing domain

Here we go, at the PowerShell prompt on the new server run the following.

Rename-computer -newname 2016-DC02
$ipaddress = ""
$dnsaddress = ""
New-NetIPAddress -InterfaceAlias Ethernet -IPAddress $ipaddress -AddressFamily IPv4 -PrefixLength 24
Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses $dnsaddress
Set-TimeZone -Id "Mountain Standard Time"
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
#see if any updates are available and patch prior by using sconfig or
$AutoUpdates = New-Object -ComObject "Microsoft.Update.AutoUpdate"
Install-ADDSDomainController  -DomainName "" -credential $(get-credential)

At the Windows PowerShell credential prompt use credentials for the domain you plan on this Domain Controller hosting. 

Set the SafeModeAdministratorPassword, then validate that the server is to be configured and restarted.

Once the new Domain Controller restarts and comes back up, leverage the Validation Section to make sure it looks good. Also leverage some of the replication cmdlets to validate replication is working.

   1: Get-ADReplicationFailure -scope SITE -target Default-First-Site-Name | FT Server, FirstFailureTime, FailureClount, LastError, Partner -AUTO
   2: Get-ADReplicationPartnerMetadata -Target * -Partition * | Select-Object Server,Partition,Partner,ConsecutiveReplicationFailures,LastReplicationSuccess,LastRepicationResult

That is all I'm going to cover in this blog I hope you find it useful.


Additional Resources

Touch-Free PowerShell DCPROMO in Windows Server 2012

Comments (14)
  1. Tom says:

    Can a DC running on Win2k16 Core also run DNS, DHCP and TS/RDS Licensing roles/features??

  2. Tom says:

    Forgot to ask: If so, by PowerShell only, or could these be accessed by GUI somehow?? Particularly DNS and DHCP. Thank you, Tom

  3. Chad Cox says:

    you can leverage server manager to connect to the server to add and configure all of the roles. DNS and DHCP are supported with core. I am not sure about ts/rds license. Install Server Core

    DNS is usually always running on a DC and is on the core. I wouldn’t recommend DHCP on the same server unless you had to.

  4. Wolfraider says:

    Typo fix
    Install-ADDSDomainController -DomaindomainName “” -credential $(get-credential)
    should be
    Install-ADDSDomainController -DomainName “” -credential $(get-credential)

    1. Tetsuji Rai says:

      I failed at this point.

      I got a message that “Verification of prerequisites for Domain Controller promotion failed. The specified argument ‘ConfirmGc’ was not recogniz…”

  5. Mikel says:

    Fast jag skulle kunna säga att jag har tappat minnet och mitt ID-kort. Då kan jag ju inte uppge min idnetitet.

  6. Sep03Natalie Brazgel (FB Comment 8/27/11) You guys are great! Thanks for taking a picture with me and signing my cd last night! Love your music!(8/26 & 27/11 | Mexican Fiesta | Milwaukee, WI)

  7. Cornel says:

    Very nice article but one very important Thing missing.
    Set correct time and timezone, before you promote to Domain Controller.
    To set timezone use : set-timezone
    To get timezones use :get-timezone * | more

    to set time in case it’s wrong use : set time “Friday, May 26, 2017, 10:25:00 AM”

    1. Cornel says:

      set-time sorry.

  8. Jon says:

    TIP: If the domain was originally set up under 2000 or 2003, ensure that SYSVOL replication is handled by DFSR, not FRS.

    If you need to migrate to DFSR, ensure that FRS replication is healthy (no journal wrap, etc.) — even if you have only one DC.

    Here’s a guide for migration to DFSR:

  9. Tetsuji Rai says:


    I found a mistake. Ethernet in
    ” 1: Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses $dnsaddress”
    must be Ethernet0.


    1. Chad Cox says:

      I will flag it to make sure to use the name of your Ethernet connection. on a new hyper-v vm with only 1 nic. Mine comes up as Ethernet.

      1. Tetsuji Rai says:

        oh sorry…

  10. Rahul,have you tried benchmarking WP + Nginx + fastcgi_cache versus WP + Nginx + W3TC? What are your thoughts and preferred setup between the two?I have been using WP + Nginx + fastcgi_cache flawlessly after reading your tutorial, but wonder if I would have any performance gain with W3TC instead.Keep up the great work!

Comments are closed.

Skip to main content