What I built
- A Windows Server promoted to a Domain Controller for
corp.local - A basic OU (Organizational Unit) structure to keep users and workstations tidy
- A couple of users and groups with a simple role-based setup
- Password policies - one for everyone, and a stricter one for admins
- Some baseline Group Policies to lock things down
Core steps (plain English)
- Promoted the server to a Domain Controller so it could run AD DS.
- Created OUs to separate users and computers.
- Added users and groups to test a small role-based setup.
- Set password rules for regular users and admins.
- Applied baseline security policies through GPOs.
What went wrong
-
DNS and time matter more than you think. If the Domain Controller is not using itself as DNS, or the time drifts, Kerberos breaks and sign-ins fail.
Fix: point DNS to
127.0.0.1and make the server a reliable time source. -
OU structure is worth thinking through early. Dropping policies at the domain root gets messy fast. It is easier to manage users and devices when they already sit in the right OUs.
-
Password policy scope can trip you up. The default domain policy applies broadly. Fine-grained password policies only work for the groups you target on purpose.
-
Never assume a policy applied. I had to keep checking with tools like
gpresult /randwhoami /allinstead of trusting the UI. -
PowerShell saves time quickly. Creating multiple users and groups by hand gets old after about five minutes.
Quick checks I ran
Get-ADDomain; Get-ADForestto make sure the domain was healthygpresult /rto confirm which policies reached a workstationwhoami /allto see group membership and privileges for a signed-in user
What I learned
- Good AD setups start with DNS, time sync, and a sensible OU structure
- Group Policy is powerful, but it can also create chaos if you test carelessly
- Fine-grained password policies are best for special cases, not every account
- Scripts beat clicking around when you want repeatable setup steps
What is next
- Add a second Domain Controller for redundancy
- Set up System State backups
- Write and test a recovery runbook so I know what to do if the lab falls over
