Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Windows Server Active Directory Administration Lab

A completed, validation-led Windows infrastructure homelab demonstrating Active Directory Domain Services, DNS, domain membership, identity administration, Group Policy, least-privilege file access, security auditing, and reusable PowerShell administration.

Project Summary

This project implements a compact Windows Server Active Directory environment on Hyper-V and documents the result as a public-safe technical case study. The completed lab includes a Windows Server 2025 Domain Controller and DNS server, a domain-joined Windows 11 client, a structured directory hierarchy, fictional departmental identities, security policy, departmental SMB access, controlled login testing, Event Viewer evidence, and read-only PowerShell validation.

The environment is intentionally isolated and uses the fictional lab domain adlab.test. The repository contains sanitized evidence and troubleshooting records from work that was actually completed and validated.

Completion and Validation Summary

Project area Verified result Detailed documentation
Hyper-V and Windows installation Complete and validated Scope 1
AD DS and DNS SCOPE_2_STATUS=PASS Scope 2
Windows client domain join SCOPE_3_STATUS=PASS Scope 3
OU structure, users, groups, and naming Validated Scope 4
Mail-related AD attributes SCOPE_5_ATTRIBUTE_STATUS=PASS Scope 5
Workstation Group Policy baseline SCOPE_6_STATUS=PASS Scope 6
SMB and NTFS departmental access SCOPE_7_STATUS=PASS and 9 of 9 access checks passed Scope 7
Security policy, login, and Event Viewer SCOPE_8_TECHNICAL_STATUS=PASS Scope 8
Read-only PowerShell administration SCOPE_9_POWERSHELL_STATUS=PASS Validation script
Recruiter-facing case-study site Live on GitHub Pages Open the case study

Project Objectives

  • Build and validate an isolated two-VM Active Directory environment.
  • Demonstrate practical administration across identity, DNS, Group Policy, access control, and auditing.
  • Apply repeatable naming, OU placement, group-based authorization, and lifecycle documentation practices.
  • Use PowerShell Direct and reusable PSSessions for safe, read-only validation.
  • Record real troubleshooting observations and verified outcomes.
  • Present the work through sanitized, recruiter-readable documentation and a static GitHub Pages case study.

Technology Stack

Area Technologies
Physical host and virtualization Windows 11 host, Hyper-V
Server platform Windows Server 2025 Standard Evaluation with Desktop Experience
Client platform Windows 11 Pro 25H2
Identity and name resolution Active Directory Domain Services, AD-integrated DNS
Policy and endpoint security Group Policy, Microsoft Defender, Windows Defender Firewall
File access SMB, Access-Based Enumeration, SMB encryption, NTFS permissions
Security validation Domain account policy, Windows Event Viewer, Security event logs
Administration Windows PowerShell 5.1, PowerShell Direct, reusable PSSessions
Documentation and portfolio VS Code, Git, GitHub, GitHub Pages, HTML, CSS, JavaScript

Lab Architecture

The lab runs on a Windows 11 Hyper-V host. Both Generation 2 virtual machines use the dedicated AD-Lab-Internal internal switch. The network has no default gateway and does not rely on DHCP.

flowchart TB
    Host["Windows 11 Host"] --> HyperV["Hyper-V"]
    HyperV --> Switch["AD-Lab-Internal<br/>Isolated internal virtual switch<br/>No default gateway"]

    subgraph Domain["Fictional lab domain: adlab.test"]
        DC["DC01<br/>Windows Server 2025<br/>Domain Controller + DNS"]
        Client["CLIENT01<br/>Windows 11 Pro 25H2<br/>Domain joined"]
    end

    Switch --> DC
    Switch --> Client
    Client -- "DNS discovery, authentication, and secure channel" --> DC
Loading

Key validated architecture facts:

  • Host lab adapter: 10.10.10.1/24
  • DC01: 10.10.10.10/24, with no default gateway
  • CLIENT01: 10.10.10.20/24, using 10.10.10.10 for DNS
  • Domain: adlab.test; NetBIOS name: ADLAB
  • Hyper-V virtual disks and runtime files are stored outside the Git repository

See Scope 1 - Hyper-V and Windows Setup for the validated VM foundation.

Active Directory Domain Services and DNS

DC01 was promoted as the writable Domain Controller for the new adlab.test forest. It provides AD DS, DNS, Kerberos Key Distribution Center, Global Catalog, SYSVOL, NETLOGON, and domain authentication services.

Validated highlights include:

  • Forest functional level: Windows2025Forest
  • Domain functional level: Windows2025Domain
  • All five FSMO roles held by DC01.adlab.test
  • Forward zone: adlab.test
  • Forest zone: _msdcs.adlab.test
  • AD-integrated reverse zone: 10.10.10.in-addr.arpa
  • Forward, reverse, and LDAP SRV records validated
  • DFSR SYSVOL state: 4 (Normal)
  • DCDIAG Connectivity, Advertising, SysVolCheck, NetLogons, Services, and DNS tests passed

Full details are available in Scope 2 - Domain Controller and DNS Setup.

Windows Client Domain Join

CLIENT01 was configured with static addressing, pointed to DC01 for DNS, and successfully joined to adlab.test. Validation confirmed:

  • PartOfDomain: True
  • Healthy secure channel: True
  • Domain trust result: NERR_Success
  • Enabled CLIENT01 computer account in Active Directory
  • Forward DNS: CLIENT01.adlab.test resolves to 10.10.10.20
  • Reverse DNS: 10.10.10.20 resolves to CLIENT01.adlab.test
  • LDAP SRV discovery through dc01.adlab.test on TCP 389

See Scope 3 - Windows Client Domain Join.

OU Structure, Users, Groups, and Naming

The custom ADLAB hierarchy separates users, groups, computers, service accounts, and disabled objects. Custom OUs are protected from accidental deletion, while the default Domain Controllers OU remains unchanged.

adlab.test
└── ADLAB
    ├── Users
    │   ├── IT
    │   ├── Human Resources
    │   └── Finance
    ├── Groups
    │   ├── IT
    │   ├── Human Resources
    │   └── Finance
    ├── Computers
    ├── Service Accounts
    └── Disabled Objects

Six fictional users were created and validated: Daniel Weber, Sophia Klein, Emma Fischer, Lukas Hoffmann, Hannah Becker, and Jonas Wagner. Three department Global Security Groups support group-based access:

  • GG_IT_Users
  • GG_HR_Users
  • GG_Finance_Users
Object Convention
Display name Firstname Lastname
sAMAccountName firstname.lastname
UserPrincipalName [email protected]
Department group GG_<Department>_Users
Domain Controller DC01
Client computer CLIENT01

CLIENT01 was moved into OU=Computers,OU=ADLAB,DC=adlab,DC=test without disrupting its secure channel. See Scope 4 - OU, Users, Groups, and Naming Convention.

Mail-Related AD Attributes and Lifecycle Documentation

Scope 5 validated native Active Directory metadata for the six fictional users and three department Global Security Groups:

  • mail
  • proxyAddresses
  • userPrincipalName for identity comparison and sign-in context

User addresses follow [email protected]. An uppercase SMTP: prefix identifies the primary proxy address value. Department group metadata uses [email protected], [email protected], and [email protected].

The repository also includes sanitized workflow references for:

These lifecycle documents define naming, OU placement, department-group assignment, account security, attribute review, containment, retention, and validation expectations. Their Alex Morgan examples are explicitly illustrative and were not implemented or validated as lifecycle events.

No Exchange Server was installed. No Microsoft 365, hybrid mail flow, mailbox provisioning, AD schema extension, or mail delivery was configured. The mail-related values are directory metadata only. See Scope 5 - Mail-Related Active Directory Attributes.

Group Policy Security Baseline

The dedicated ADLAB - Workstation Security Baseline GPO is linked to the custom Computers OU and applies to CLIENT01. The Default Domain Policy was not modified for these workstation controls.

Validated workstation control Result
Machine inactivity timeout 900 seconds
Firewall Domain, Private, and Public profiles Enabled
Microsoft Defender real-time monitoring Enabled
AutoPlay Disabled for all drive types
Windows automatic updates Enabled
Windows Update AUOptions 3
Insecure SMB guest logons Disabled
User Account Control and secure desktop Enabled

gpupdate, gpresult, registry-based checks, Defender status, and firewall-profile checks confirmed the applied baseline. See Scope 6 - Group Policy Baseline.

Password and Account Lockout Policies

Domain account policy was validated separately from the workstation GPO.

Policy setting Validated value
Password complexity Enabled
Minimum password length 12 characters
Password history 24 passwords
Minimum password age 1 day
Maximum password age 90 days
Reversible encryption Disabled
Account lockout threshold 5 invalid attempts
Account lockout duration 15 minutes
Reset observation window 15 minutes

Departmental SMB Shares and NTFS Permissions

DC01 hosts three departmental shares protected through Global Security Groups:

Department SMB share Share permission NTFS permission
IT \\DC01\IT GG_IT_Users: Change GG_IT_Users: Modify
Human Resources \\DC01\HR GG_HR_Users: Change GG_HR_Users: Modify
Finance \\DC01\Finance GG_Finance_Users: Change GG_Finance_Users: Modify

BUILTIN\Administrators and NT AUTHORITY\SYSTEM retain Full Control. Broad inherited BUILTIN\Users and CREATOR OWNER access was removed from the secured parent baseline. No Everyone or Authenticated Users share permission is present.

SMB1 is disabled, SMB2 is enabled, SMB signing is required, unencrypted access is rejected, and all three shares use Access-Based Enumeration and SMB encryption.

The departmental validation matrix passed all 9 of 9 checks:

Fictional test user IT Human Resources Finance
Daniel Weber Allowed - create/read/delete passed Denied Denied
Emma Fischer Denied Allowed - create/read/delete passed Denied
Hannah Becker Denied Denied Allowed - create/read/delete passed

See Scope 7 - File Share and NTFS Permissions.

Login Testing, Auditing, and Event Viewer Evidence

A controlled lockout test used the fictional standard account ADLAB\daniel.weber; the Domain Administrator account was not used as the target. Five distinct failed domain authentications were counted, the account locked at BadPwdCount: 5, and the account was then manually restored to LockedOut: False and BadPwdCount: 0.

CLIENT01 successful-login evidence used Logon Type 2 and the Negotiate authentication package. The Security logs remained enabled and were not cleared or deleted.

System Event ID Validated meaning
DC01 4625 Failed logon
DC01 4740 User account locked out
DC01 4767 User account unlocked
CLIENT01 4624 Successful logon
CLIENT01 4634 Account logged off
CLIENT01 4672 Special privileges assigned to new logon

See Scope 8 - Security Policy, Login, and Event Viewer Validation.

PowerShell Administration

The reusable Scope 9 validation script runs from elevated Windows PowerShell on the Hyper-V host. It prompts securely for the fictional domain administrator credential, creates reusable PowerShell Direct sessions to DC01 and CLIENT01, performs read-only queries, and closes sessions in a finally block.

The validated workflow covers:

  • AD domain, OU, user, group, and CLIENT01 computer-account queries
  • LDAP SRV discovery and DNS target validation
  • GPO link and version checks
  • SMB encryption and Access-Based Enumeration checks
  • CLIENT01 IP, DNS, domain, and secure-channel checks
  • Firewall, Defender, and inactivity-policy validation
  • Compact summaries without remoting metadata or credential output

Final technical evidence records SCOPE_9_POWERSHELL_STATUS=PASS. A separate cleanup check confirmed RemainingSessionCount=0 and SESSION_CLEANUP_STATUS=PASS after stale PowerShell Direct sessions were enumerated and closed.

Troubleshooting and Lessons Learned

Only real homelab observations are recorded in the Troubleshooting Guide. Key lessons include:

Observation Resolution or lesson
DC01 could not start with the original 4 GB startup allocation Startup memory was adjusted to 3 GB while the 2 GB minimum and 6 GB maximum were retained.
DC01 and CLIENT01 initially received APIPA addresses Static addressing was used because the isolated switch has no DHCP server.
Host-to-DC01 ICMP initially failed The required built-in ICMPv4 echo rule was enabled without disabling the firewall.
DCDIAG reported a time-server advertising warning DC01 was configured as a reliable domain time source.
LDAP SRV lookup targeted the wrong zone The query was corrected to the separate _msdcs.adlab.test zone.
A filtered gpresult display appeared blank Raw successful output confirmed the workstation GPO was applied.
Interactive foreach and if/else parsing failed Loop output and multi-part control flow were submitted in PowerShell-safe forms.
Stale PSSessions remained open The active session inventory was enumerated and all remaining sessions were removed.

These incidents reinforced a repeatable approach: start with read-only queries, validate DNS early, distinguish display problems from configuration failures, confirm each correction, and keep credentials out of output.

Validation Evidence

The repository includes sanitized screenshots from completed Scopes 1 through 9. The following focused selection shows the principal identity, policy, access, auditing, and PowerShell outcomes.

AD DS and DNS

Sanitized DC01 AD DS and DNS validation

DC01 domain services, DNS records, role ownership, and final validation state.

Active Directory Structure

Sanitized custom Active Directory OU hierarchy

Custom ADLAB organizational hierarchy for users, groups, computers, service accounts, and disabled objects.

Group Policy Baseline

Sanitized Group Policy baseline validation

Dedicated workstation GPO application and validated security controls on CLIENT01.

SMB and NTFS Permissions

Sanitized departmental SMB and NTFS validation

Group-based share controls and the completed nine-point departmental access matrix.

Security Policy and Event Viewer

Sanitized login, lockout, and Event Viewer validation

Domain policy, controlled lockout and restoration, successful login, and relevant Windows Security events.

PowerShell Administration

Sanitized Scope 9 PowerShell administration validation

Read-only administration summaries for DC01 and CLIENT01 with the final PASS result.

Skills Demonstrated

  • Hyper-V virtual machine, storage, and isolated-network administration
  • Windows Server installation and Domain Controller deployment
  • Active Directory Domain Services, DNS zones, records, and service validation
  • Windows client domain join, trust, secure-channel, and DNS troubleshooting
  • OU design, identity naming, user administration, and Global Security Groups
  • Native mail and proxyAddresses attribute administration
  • Group Policy design and client-side validation
  • Domain password, account lockout, and audit policy administration
  • Least-privilege SMB share and NTFS permission design
  • Controlled authentication testing and Windows Security event interpretation
  • PowerShell Direct, reusable PSSessions, read-only validation, and safe cleanup
  • Evidence-led troubleshooting and public-safe technical documentation

Project Outcomes

  • Delivered a functioning two-VM Active Directory lab with validated domain services and client membership.
  • Established a maintainable directory structure and group-based authorization model.
  • Applied and verified workstation and domain-account security controls.
  • Proved department isolation through allowed and denied SMB access tests.
  • Connected login behavior to relevant Domain Controller and client Security events.
  • Produced reusable PowerShell validation and documented session cleanup.
  • Published a responsive recruiter-facing case-study site and a sanitized evidence set.
  • Demonstrated the difference between implemented homelab controls and conceptual production requirements.

Repository Structure

windows-server-active-directory-lab/
├── README.md
├── LICENSE
├── assets/
│   └── screenshots/
│       ├── scope-1/
│       └── scope-2/ ... scope-9/
├── docs/
│   ├── index.html
│   ├── assets/
│   │   ├── css/
│   │   ├── images/
│   │   └── js/
│   ├── lifecycle/
│   │   ├── onboarding-workflow.md
│   │   └── offboarding-workflow.md
│   ├── scope-1-hyper-v-and-windows-setup.md
│   ├── scope-2-domain-controller-and-dns-setup.md
│   ├── scope-3-windows-client-domain-join.md
│   ├── scope-4-ou-users-groups-naming-convention.md
│   ├── scope-5-mail-related-ad-attributes.md
│   ├── scope-6-group-policy-baseline.md
│   ├── scope-7-file-share-ntfs-permissions.md
│   ├── scope-8-security-policy-login-event-viewer-validation.md
│   ├── troubleshooting-guide.md
│   ├── security-redaction-rules.md
│   └── real-world-production-considerations.md
└── scripts/
    └── validation/
        └── scope-9-powershell-administration-validation.ps1

Security and Public-Documentation Boundaries

  • Every user identity in the repository is fictional.
  • adlab.test is a lab-only namespace.
  • No passwords, password hints, security-question answers, or credential values are stored.
  • No private client or employer documents were used or reproduced.
  • No production domains, hostnames, IP addresses, screenshots, or confidential configurations are exposed.
  • Evidence was reviewed and sanitized before publication.
  • VM IDs, GUIDs, MAC addresses, product keys, recovery keys, private keys, and sensitive Event Viewer data are excluded.
  • Exchange Server, Microsoft 365, mailboxes, mail delivery, and hybrid identity were not deployed.

Real-World Production Considerations

This repository is an independently built homelab, not a production deployment. Its architecture, validation approach, and documentation are production-informed, while all client, employer, and production-environment details remain excluded. The following capabilities would require separate design and implementation in a production environment:

Area Production consideration
Domain Controllers Deploy multiple Domain Controllers for redundancy, high availability, authentication resilience, and suitable Global Catalog placement.
AD-integrated DNS Provide redundant DNS service, planned forwarders, appropriate site placement, and documented recovery procedures.
FSMO roles and authoritative time Document FSMO role holders and recovery procedures; design the PDC Emulator and upstream time source as part of an authoritative domain time hierarchy.
AD Sites and Services Map sites, subnets, site links, and schedules to physical network topology and authentication requirements.
Replication Monitor replication health and plan topology, latency, bandwidth, and recovery across locations.
Backup and disaster recovery Implement tested System State backup, authoritative and non-authoritative restore procedures, recovery objectives, and disaster recovery exercises.
Monitoring and alerting Centralize event collection, define actionable alerts, size and retain logs appropriately, and integrate operational or SIEM monitoring where required.
Privileged administration Apply separation of duties, tiered or privileged administration, hardened administrative workstations, controlled service accounts, and audited change management.
Proxy and security layers Integrate appropriate proxy services, network firewalls, endpoint protection, centralized logging, certificate management, and layered security controls.
Exchange and Microsoft 365 identity Treat Exchange Server, Microsoft 365, mail flow, schema preparation, certificates, availability, backup, and hybrid identity as a separate architecture. This lab demonstrates only native AD metadata and conceptual identity integration.

The compact two-VM design is appropriate for controlled learning and portfolio validation. It does not claim enterprise high availability, production-scale disaster recovery, multi-site replication, centralized monitoring, or a completed Exchange or Microsoft 365 deployment. See Real-World Production Considerations for the full conceptual mapping.

Releases

Packages

Contributors

Languages