Promote a Windows VPS to a Domain Controller
Promote a fresh Windows VPS to the first Active Directory domain controller in a new forest using AD DS, DNS, Install-ADDSForest, and PowerShell verification.

On this page
- In short
- Quick verdict
- What we tested on Raff
- Important: use a dedicated VM
- What you'll need
- Step 1 - Confirm the test environment
- Step 2 - Set hostname and verify IP/DNS
- Step 3 - Install the AD DS role
- Step 4 - Make sure the local Administrator password is required
- Step 5 - Promote to a new forest
- Step 6 - After reboot, sign in to the domain
- Step 7 - Verify AD DS services
- Step 8 - Verify domain controller status
- Step 9 - Verify DNS zones and create the first OU/user
- Additional DC path for existing domains
- Production recommendations
- Common mistakes
- What Raff recommends
- Tested on
- What's next
- Sources
Don't have a Windows Server yet?
Deploy Windows Server 2019/2022/2025 in ~2 minutes. 6-month evaluation licence included.
In short
Promoting a Windows VPS to a domain controller is straightforward, but it should be done on a dedicated server. The clean workflow is: start with a fresh Windows Server VM, set a meaningful hostname, verify stable IP/DNS configuration, install the Active Directory Domain Services role, run Install-ADDSForest for a new forest, enter a strong DSRM password, reboot, then verify AD DS, DNS, Netlogon, and domain controller status.
Quick verdict
| Situation | Recommendation |
|---|---|
| New SMB lab domain | Promote a fresh Windows VPS as the first DC |
| Existing production domain | Add an additional DC only after testing connectivity and DNS |
| Server already running IIS, SQL Server, or RDS | Do not promote it; use a dedicated VM |
| Single-DC lab | Acceptable for testing and small demos |
| Production AD environment | Use at least two DCs |
| Public internet-facing VPS | Use private networking or VPN; do not expose AD ports publicly |
| Before promotion | Rename server, verify IP/DNS, confirm local Administrator password is required |
A domain controller is not just another Windows role. It becomes the identity foundation for the environment.
What we tested on Raff
We tested this walkthrough on a fresh Raff Windows VPS running Windows Server 2025 Datacenter Evaluation.

Test environment:
| Item | Value |
|---|---|
| Provider | Raff Technologies |
| OS | Windows Server 2025 Datacenter Evaluation |
| Server role | First domain controller in a new forest |
| Hostname | DC01 |
| Test domain | contoso.local |
| Forest NetBIOS name | CONTOSO |
| AD role | Active Directory Domain Services |
| DNS | Installed during promotion |
| Test date | 2026-06-09 |
| Tester | Serdar Tekin |
In this lab, we verified:
- server baseline
- hostname and IP/DNS pre-flight
- AD DS role installation
- local Administrator password requirement
Install-ADDSForestpromotion- AD DS services after reboot
- domain controller verification
- DNS zone creation
- first OU and user creation
This guide demonstrates a new forest / first domain controller deployment. Adding a domain controller to an existing forest has different prerequisites and should be tested separately.
Important: use a dedicated VM
Do not promote a general-purpose server to a domain controller if it already runs production workloads such as IIS, SQL Server, RDS Session Host, file sharing for users, business applications, or public web apps.
A domain controller should be treated as a dedicated identity server.
Mixing roles creates security and maintenance risk. If one web app, SQL app, or RDS workload is compromised, the domain controller may also be exposed.
For production, use at least two DCs when possible.
What you'll need
- Fresh Raff Windows VPS
- Windows Server 2022 or Windows Server 2025
- Local Administrator access
- Stable IP configuration
- Meaningful hostname, such as
DC01 - Strong local Administrator password
- Strong DSRM password
- 30-45 minutes including reboot
For a small lab, a 4 vCPU / 8 GB Windows VPS is enough.
For production, size based on users, sites, replication design, DNS usage, and redundancy requirements.
Step 1 - Confirm the test environment
Start with a fresh Windows Server VM.
Run PowerShell as Administrator:
powershellcls
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber, CsNumberOfLogicalProcessors, CsTotalPhysicalMemory
Get-Service | Where-Object {$_.Name -in 'LanmanServer','Dnscache'} | Select-Object Name, Status, DisplayName
hostname
This records the baseline before AD DS promotion.
The important checks are:
| Check | Why it matters |
|---|---|
| Windows version | Confirms server OS |
| CPU and memory | Documents VM size |
| hostname | Should be renamed before promotion |
| basic services | Confirms server is responsive |
Do not promote a server until the hostname is correct.
Step 2 - Set hostname and verify IP/DNS
Rename the server before promotion.
Example:
powershellRename-Computer -NewName "DC01" -Restart
After reboot, reconnect by RDP and verify hostname and IP configuration.

Useful checks:
powershell$adapter = (Get-NetAdapter | Where-Object Status -eq 'Up').Name
hostname
Get-NetIPAddress -InterfaceAlias $adapter -AddressFamily IPv4 |
Select-Object InterfaceAlias, IPAddress, PrefixLength, AddressState
Get-DnsClientServerAddress -InterfaceAlias $adapter -AddressFamily IPv4
Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'
For a private AD environment, the DC should use stable private IP addressing.
For a public VPS-only setup, be careful. Do not expose Active Directory services directly to the internet. Use private networking or VPN for domain traffic.
Step 3 - Install the AD DS role
Install Active Directory Domain Services and management tools:
powershellInstall-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Verify the role:
powershellGet-WindowsFeature -Name AD-Domain-Services

The AD DS role install alone does not make the server a domain controller. The promotion happens in the next step.
Step 4 - Make sure the local Administrator password is required
Before creating a new forest, the local Administrator account becomes the domain Administrator account.
If the local Administrator account does not require a password, promotion fails.
Verify it:
powershellnet user Administrator
Look for:
textPassword required Yes

If needed, force the local Administrator account to require a password:
powershellnet user Administrator /passwordreq:yes
Then set a strong password:
powershellnet user Administrator "Replace-With-Your-Strong-Password"
For production, use a unique password stored in a password manager.
Step 5 - Promote to a new forest
For a brand-new AD environment, use Install-ADDSForest.
Example lab domain:
textcontoso.local
Run:
powershellInstall-ADDSForest `
-DomainName "contoso.local" `
-DomainNetbiosName "CONTOSO" `
-ForestMode "WinThreshold" `
-DomainMode "WinThreshold" `
-InstallDns `
-CreateDnsDelegation:$false `
-DatabasePath "C:\Windows\NTDS" `
-LogPath "C:\Windows\NTDS" `
-SysvolPath "C:\Windows\SYSVOL" `
-NoRebootOnCompletion:$false `
-Force
PowerShell will ask for:
textSafeModeAdministratorPassword
This is the Directory Services Restore Mode, or DSRM, password.

Store the DSRM password securely. It is separate from normal domain login and is used for offline AD recovery.
After validation, the server installs the new forest, configures DNS, and reboots automatically.
Step 6 - After reboot, sign in to the domain
After reboot, sign in as:
textCONTOSO\Administrator
Use the Administrator password you configured before promotion.
The local Administrator account has become the domain Administrator account for the new forest.
Step 7 - Verify AD DS services
Open PowerShell as Administrator and run:
powershellGet-Service -Name "NTDS","ADWS","DNS","Netlogon" | Format-Table Name, Status
Expected result:
textNTDS Running
ADWS Running
DNS Running
Netlogon Running

These services confirm the server is operating as a domain controller with DNS and AD web services available.
Step 8 - Verify domain controller status
Run:
powershellGet-ADDomain | Select-Object Forest, DomainSID, NetBIOSName, PDCEmulator, RIDMaster, InfrastructureMaster
Get-ADDomainController -Filter * |
Select-Object HostName, Domain, Forest, Site, IsGlobalCatalog

You should see:
- forest:
contoso.local - NetBIOS name:
CONTOSO - hostname:
DC01.contoso.local - server listed as a domain controller
- global catalog enabled
At this point, the new forest is operational.
Step 9 - Verify DNS zones and create the first OU/user
First, verify DNS zones:
powershellGet-DnsServerZone |
Format-Table ZoneName, ZoneType, IsDsIntegrated, IsReverseLookupZone
You should see zones such as:
textcontoso.local
_msdcs.contoso.local
Then create an Organizational Unit:
powershellNew-ADOrganizationalUnit -Name "Accounting" -Path "DC=contoso,DC=local"
If the OU already exists, verify it instead:
powershellGet-ADOrganizationalUnit -Filter "Name -eq 'Accounting'" |
Select-Object Name, DistinguishedName
Create a test user:
powershell$securePassword = Read-Host "Initial password" -AsSecureString
New-ADUser -Name "Jane Doe" -GivenName "Jane" -Surname "Doe" `
-SamAccountName "jane.doe" `
-UserPrincipalName "jane.doe@contoso.local" `
-Path "OU=Accounting,DC=contoso,DC=local" `
-AccountPassword $securePassword `
-Enabled $true
Verify the OU and user:
powershellGet-ADOrganizationalUnit -Filter "Name -eq 'Accounting'" |
Select-Object Name, DistinguishedName
Get-ADUser -Identity "jane.doe" |
Select-Object Name, SamAccountName, UserPrincipalName, Enabled

This proves the domain is usable for basic directory operations.
Additional DC path for existing domains
If you already have an Active Directory domain, do not use Install-ADDSForest.
Use Install-ADDSDomainController instead.
Example:
powershell$cred = Get-Credential
Install-ADDSDomainController `
-DomainName "contoso.local" `
-InstallDns `
-Credential $cred `
-DatabasePath "C:\Windows\NTDS" `
-LogPath "C:\Windows\NTDS" `
-SysvolPath "C:\Windows\SYSVOL" `
-NoRebootOnCompletion:$false `
-Force
Before adding an additional DC, confirm:
- network reachability to the existing DC
- DNS points to the existing DC
- domain admin credentials work
- time is synchronized
- replication health is clean
- private connectivity exists between servers
This guide tested the first-DC / new-forest path only.
Production recommendations
A single DC is acceptable for a lab or simple test environment.
For production, plan for:
| Area | Recommendation |
|---|---|
| Number of DCs | At least two |
| Networking | Private network or VPN |
| DNS | AD-integrated DNS on DCs |
| Backups | System State backups |
| Time sync | Reliable NTP/source hierarchy |
| Security | Dedicated VM, minimal roles |
| Monitoring | AD DS, DNS, replication, disk, event logs |
| Access | Restrict RDP and admin access |
Do not expose domain controller services directly to the public internet.
Common mistakes
Promoting before renaming the server
The server name becomes part of AD metadata. Rename before promotion.
Skipping stable IP/DNS planning
Domain controllers need reliable IP and DNS configuration. AD depends heavily on DNS.
Using a server that already runs IIS, SQL, or RDS
Domain controllers should be dedicated. Mixing roles increases risk.
Forgetting the local Administrator password requirement
If the local Administrator account does not require a password, promotion can fail.
Losing the DSRM password
The DSRM password is needed for offline AD recovery. Store it securely.
Pointing DNS only to public resolvers
Domain members must use AD DNS to locate domain services. Public DNS alone breaks AD discovery.
Building a single DC for serious production
A single DC is a single point of failure. Use at least two DCs for production.
Opening AD ports to the internet
Do not expose LDAP, Kerberos, SMB, RPC, or DNS to the public internet unless you have a very specific and secured architecture.
What Raff recommends
For Active Directory on Windows VPS, Raff recommends:
- Use a fresh dedicated Windows VPS for the domain controller.
- Rename the server before promotion.
- Use stable private IP addressing where possible.
- Install only the AD DS/DNS roles needed for the DC.
- Store the DSRM password securely.
- Verify AD DS services after reboot.
- Verify DNS zones and domain controller status.
- Create test OU/user objects to confirm AD works.
- Use at least two DCs for production.
- Do not expose AD services directly to the public internet.
For most SMB production environments, Active Directory should be part of a broader network design, not a standalone public server.
Tested on
Tested on Raff Windows VPS, Windows Server 2025 Datacenter Evaluation, promoted as the first domain controller of the
contoso.localforest, 2026-06-09. We installed the AD DS role, verified local Administrator password requirements, ranInstall-ADDSForest, rebooted, verified AD DS/DNS/Netlogon/ADWS services, confirmed domain controller status, checked DNS zones, and created an Accounting OU with a Jane Doe test user. Tester: Serdar Tekin.
What's next
- Connect to a Windows VPS via RDP - connect to your server first
- Windows Server Hardening Checklist - secure the new domain controller
- Windows Update Strategy on Production Servers - patch domain controllers safely
- RDS CAL Licensing on Windows Server - understand licensing before adding RDS
- Raff Windows VPS - deploy a Windows Server VPS for Active Directory, DNS, IIS, SQL Server, and business apps
Sources
- Microsoft Learn - Install Active Directory Domain Services
- Microsoft Learn - Install-ADDSForest
- Microsoft Learn - Install-ADDSDomainController
- Microsoft Learn - Active Directory Domain Services overview
- Date last verified: 2026-06-09
Related articles
Free SSL on IIS with Let's Encrypt and win-acme
Install a free Let's Encrypt certificate on IIS with win-acme, bind it to your site, and verify automatic renewal on a Raff Windows VPS in 45 minutes.
MSSQL Backup Strategy on a Windows VPS: Full, Differential, and Log Backups
Back up SQL Server on a Windows VPS with a practical strategy for full, differential, and log backups, off-server copies, retention, and restore testing.
How to Set Up SMB over QUIC on Windows Server 2025 with a Let's Encrypt Certificate (No VPN Needed)
Windows Server 2025 brings SMB over QUIC to Standard and Datacenter editions, not just Azure Edition. We walk through the full setup: File Server role, free Let's Encrypt certificate via win-acme, SMB binding, and a Windows 11 client connection. Tested live on a Raff Server in Virginia.