# mohamadal-shanti/ad-home-lab architecture

> Architecture diagram of the GitHub repository mohamadal-shanti/ad-home-lab, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mohamadal-shanti/ad-home-lab
- Repository: https://github.com/mohamadal-shanti/ad-home-lab

## Overview

This repository documents a PowerShell-based Active Directory home lab, rather than implementing an application. Its main workflow is to create virtual machines, configure a Windows Server domain controller and directory policies, then join a Windows client to validate them. The README also identifies an Entra ID extension. The available README excerpt ends before the user, OU, policy, and Entra details, so those capabilities are shown without speculative internal wiring.

Main entry points: [`README.md`](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md) (Lab instructions), [`AD-Lab-Screenshots`](https://github.com/mohamadal-shanti/ad-home-lab/tree/main/AD-Lab-Screenshots) (Setup screenshots)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_infrastructure["Lab Infrastructure"]
  node_guide["Lab instructions<br/>[README.md]"]
  node_virtualbox["VirtualBox"]
  node_server_vm["Windows Server VM"]
  node_client_vm["Windows client VM"]
  node_screenshots["Setup screenshots"]
end

subgraph group_directory["Directory Setup"]
  node_install_adds["Install AD DS<br/>[README.md]"]
  node_configure_controller["Configure controller<br/>[README.md]"]
  node_forest_dns["Forest and DNS<br/>[README.md]"]
  node_domain_network["Domain networking<br/>[README.md]"]
end

subgraph group_operations["Identity Operations"]
  node_directory_objects["Users and OUs<br/>[README.md]"]
  node_group_policy["Group policies<br/>[README.md]"]
  node_client_join["Join client domain<br/>[README.md]"]
  node_verify_client["Verify client access<br/>[README.md]"]
  node_entra_extension["Entra ID extension<br/>[README.md]"]
end

node_administrator(("Lab administrator"))

node_administrator -->|"follows"| node_guide
node_guide -->|"guides setup"| node_virtualbox
node_virtualbox -->|"hosts"| node_server_vm
node_virtualbox -->|"hosts"| node_client_vm
node_guide -->|"references"| node_screenshots
node_administrator -->|"runs"| node_install_adds
node_install_adds -->|"precedes"| node_configure_controller
node_administrator -->|"configures"| node_configure_controller
node_administrator -->|"creates"| node_forest_dns
node_administrator -->|"configures"| node_domain_network
node_administrator -->|"provisions"| node_directory_objects
node_administrator -->|"implements"| node_group_policy
node_administrator -->|"joins"| node_client_join
node_client_join -->|"enables verification"| node_verify_client
node_administrator -->|"tests"| node_verify_client
node_administrator -.->|"explores"| node_entra_extension

click node_guide "https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md"
click node_screenshots "https://github.com/mohamadal-shanti/ad-home-lab/tree/main/AD-Lab-Screenshots"
click node_install_adds "https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md"
click node_configure_controller "https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md"
click node_forest_dns "https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md"
click node_domain_network "https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md"
click node_directory_objects "https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md"
click node_group_policy "https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md"
click node_client_join "https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md"
click node_verify_client "https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md"
click node_entra_extension "https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_guide,node_virtualbox,node_server_vm,node_client_vm,node_screenshots toneBlue
class node_install_adds,node_configure_controller,node_forest_dns,node_domain_network toneAmber
class node_directory_objects,node_group_policy,node_client_join,node_verify_client,node_entra_extension toneMint
class node_administrator toneIndigo
```

## Components

### Lab Infrastructure

- [Lab instructions](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md): `README.md`
- **VirtualBox**
- **Windows Server VM**
- **Windows client VM**
- [Setup screenshots](https://github.com/mohamadal-shanti/ad-home-lab/tree/main/AD-Lab-Screenshots): `AD-Lab-Screenshots`

### Directory Setup

- [Install AD DS](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md): `README.md`
- [Configure controller](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md): `README.md`
- [Forest and DNS](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md): `README.md`
- [Domain networking](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md): `README.md`

### Identity Operations

- [Users and OUs](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md): `README.md`
- [Group policies](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md): `README.md`
- [Join client domain](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md): `README.md`
- [Verify client access](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md): `README.md`
- [Entra ID extension](https://github.com/mohamadal-shanti/ad-home-lab/blob/main/README.md): `README.md`

### Other components

- **Lab administrator**

## Connections

- Lab administrator → Lab instructions: follows
- Lab instructions → VirtualBox: guides setup
- VirtualBox → Windows Server VM: hosts
- VirtualBox → Windows client VM: hosts
- Lab instructions → Setup screenshots: references
- Lab administrator → Install AD DS: runs
- Install AD DS → Configure controller: precedes
- Lab administrator → Configure controller: configures
- Lab administrator → Forest and DNS: creates
- Lab administrator → Domain networking: configures
- Lab administrator → Users and OUs: provisions
- Lab administrator → Group policies: implements
- Lab administrator → Join client domain: joins
- Join client domain → Verify client access: enables verification
- Lab administrator → Verify client access: tests
- Lab administrator → Entra ID extension: explores
