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.

   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, 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.

   1: Rename-computer -newname 2016-DC02
   2: $ipaddress = ""
   3: $dnsaddress = ""
   4: New-NetIPAddress -InterfaceAlias Ethernet -IPAddress $ipaddress -AddressFamily IPv4 -PrefixLength 24
   5: Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses $dnsaddress
   7: Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
   8: 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 (5)

  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)

  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.

Skip to main content