About & FAQs

What this report is, how it was made and answers to common questions

AD Report # 1 is a complete reporting website for an Active Directory forest. It gives a hands-on view of a large, global AD estate: its health, replication, security posture and every object in it.

The forest, adreps.com, was built from scratch on Windows Server 2025 by a set of PowerShell scripts. They apply a hardened, three-tier security model and fill the directory with fictitious but realistic sites, users, groups and computers.

A read-only collector then exported everything about the forest to JSON. That collection was enriched with synthetic data, turning two lab domain controllers into a 54-DC estate across four regions, complete with replication topology, logon history, hardware inventory, a week of performance history and a few deliberate faults. Every row is labelled so you can always tell real data from generated data.

The website itself is a set of static pages. Each one loads its JSON when you open it, so refreshing the data files updates the report straight away, with no build step and no server.

Built for real Active Directory, not just this demo.

The synthetic data only fills the gaps a two-DC lab can't show. Every page, check and dashboard panel works the same on a production forest with entirely real data.

  • Run the read-only collector, Get-ADReportData.ps1, against your own forest, and Get-ADPerfData.ps1 for DC performance.
  • Load the output with Update-SiteData.ps1. Every row is then labelled Live.
  • Schedule both to keep the report and the Ops Dashboard current. No secrets are ever exported.

See Collecting the data in the Guide.

Domain ControllersAll DCs 54Windows Server 2025SitesSites 504 regions · 250 subnetsUser AccountsUsers 672employees, contractors and tier adminsComputersComputers 749workstations, laptops, PAWs, servers, DCsData SetsData Collection 6429,856 rows in all
Where the Rows Come from30%collected from the lab (Live + Enriched)
  • Live 5,487
  • Enriched 3,543
  • Synthetic 20,826

How It Fits Together

  1. 1BuildNew-ADForest.ps1 builds a hardened, tiered Windows Server 2025 forest and fills it from an Excel workbook.
  2. 2CollectGet-ADReportData.ps1 reads the forest into 60+ JSON data sets; Get-ADPerfData.ps1 records DC performance.
  3. 3EnrichNew-ADReportSyntheticData.ps1 grows the lab into a 54-DC global estate, tagging every row Live, Enriched or Synthetic.
  4. 4PublishUpdate-SiteData.ps1 copies the JSON into the site; Cloudflare Workers serves it as static files.
  5. 5ExploreYour browser loads the JSON for each page and builds the tables, maps and charts on the spot.

Frequently Asked Questions · 19

General

What is this website?

An Active Directory reporting site. It shows one forest, adreps.com, from every angle: the forest and domain, sites and geography, domain controllers, replication, DC health and performance, DNS, users, computers, groups, OUs, Group Policy, security checks, the tier model, LAPS, BitLocker and the DSRM password.

It's a working demonstration of what a complete AD health and compliance report can look like, built end to end from PowerShell to the web page.

Is this a real company's Active Directory?

No. adreps.com is a lab forest built for this project on Windows Server 2025. The people, computers, sites and IP addresses are fictitious, and nothing here belongs to a real organisation.

The forest itself is real, though. It was built by script, populated with objects, and then read by the collector, so the structure, GPOs, permissions and security settings you see are genuine.

Who is it for?

AD administrators, security and operations teams, and anyone who wants to see what an AD estate looks like when it's well documented. You can use it as:

  • a reference design for a tiered, hardened forest
  • a model for AD reporting and monitoring
  • a wall display in an operations centre, using the Ops Dashboard
Why is it called "AD Report # 1"?

It's the first report in the series, built around one forest. The site name appears in the sidebar and in every browser tab title.

The Data

Where does the data come from?

Two PowerShell collectors produce JSON files that the website reads:

  • Get-ADReportData.ps1 reads the forest into more than 60 data sets, covering objects, sites, replication, DC health, DNS, GPOs, security, tiers, LAPS, BitLocker, DSRM and hardware inventory.
  • Get-ADPerfData.ps1 samples CPU, memory and network on every DC every 5 minutes and keeps 7 days of history.

The Guide explains both, and Data Collection lists every data set with its row counts.

What do Live, Enriched and Synthetic mean?

Every row carries a DataSource value:

  • Live was collected from the lab forest and left unchanged.
  • Enriched was collected, then had gaps filled with realistic values, such as a last-logon date on an account that has never been used.
  • Synthetic was invented, for example the 52 extra domain controllers and their replication links.

The Data Collection page shows the mix for each data set.

Why add synthetic data at all?

A lab has two domain controllers in one room. A real estate has dozens across continents, with replication between them, years of logon history and the occasional fault. The synthetic data turns the lab into a believable 54-DC, 4-region enterprise, so every page has something meaningful to show.

It's generated from the real collection, with a fixed seed, so the same input always gives the same output.

Are the problems in the report real?

Some are deliberate. A handful of faults were injected so the alerting can be seen working:

  • two DCs with failing inbound replication (errors 1722 and 8524)
  • one DC with the Print Spooler running
  • one with LDAP channel binding off
  • one whose DSRM password sync failed
  • one low on disk
  • one with clock skew
  • several performance faults on the DC Performance page

The Guide lists them under Injected faults. Findings such as accounts that have never logged on or missing BitLocker keys come from the generated data too.

Are any passwords or secrets included?

No. The collector never exports LAPS passwords, BitLocker recovery passwords, the DSRM password or KDS root key values. It records only whether they exist, their dates and who is allowed to read them.

How current is the data, and how is it refreshed?

The footer of every page shows when the data was collected. Pages fetch their JSON fresh on every load, so a browser refresh, or the Refresh data button, shows the latest files. On Cloudflare the data/ folder is set to always revalidate.

The Ops Dashboard reloads its data by itself every 5 minutes. To publish a new collection, copy its JSON into the site with Update-SiteData.ps1.

Using the Site

How do I find a particular DC, user, group or computer?

Use the search box at the top of every page, or press / from anywhere to jump to it. It searches:

  • domain controllers, sites, countries and subnets
  • users, groups and computers
  • GPOs and OUs
  • event IDs, and computers by IP address

Press Enter for the full results page. Names in tables are links too, and hovering over one shows a summary card.

Can I export the data?

Yes. Every table has a CSV button that downloads the rows you're looking at, after any search or filter. The full data sets are the JSON files in the site's data/ folder, and the collector also writes an Excel workbook.

What do the coloured filter buttons mean?

Filter buttons above a table narrow it down. Red buttons pick out failures and errors, and amber buttons pick out warnings, so problems stand out before you click.

Many buttons explain what they match when you hover over them. The counts update with the region filter where there is one.

How does full screen work?

Press the amber Full screen button at the top of any page. The site stays full screen as you move between pages, and a Back button appears for stepping back through the pages you've visited. Press Esc or Exit full screen to leave.

For a permanent wall display, a browser in kiosk mode or F11 works too.

Can I switch between light and dark?

Yes, with the Light/Dark switch at the top right. Your choice is remembered in this browser. Until you choose, the site follows your device's setting.

Technical

What is the website built with?

Plain HTML, CSS and JavaScript, with no framework, no build step and no server code. Maps and charts are drawn as SVG, and the dashboard globe is drawn on an HTML canvas.

The data is JSON produced by PowerShell, and the site is hosted as static files on Cloudflare Workers. The Guide covers how the website works.

Does it need a database or a web server?

No. Any static file host will do. The only requirement is that the pages are served over HTTP rather than opened from disk, because browsers won't let a page loaded from file:// fetch its JSON. Start-LocalSite.ps1 runs a local preview server for that.

Could I point it at my own Active Directory?

Yes. Get-ADReportData.ps1 is read-only and runs on a DC, or on a machine with RSAT, as a Domain Admin. Copy its JSON into the site with Update-SiteData.ps1 and the pages will show your forest.

Some checks, such as Expected build GPOs and the tier model, compare against the NewForest build. Those will show differences in a forest that wasn't built the same way.

Which browsers are supported?

Current versions of Edge, Chrome, Firefox and Safari. The site uses modern CSS such as color-mix(), so very old browsers won't display it correctly.