Active Directory Topology Visualization part 2

If you have a look closer into¬†Active Directory Topology Visualization part 1 solution developed some time ago you will find that vbs script queries one domain controller to find replication topology. It is quick approach to have overview of AD replication ASAP. However it represents viewpoint only of this domain controller and sometimes it doesn’t have to be objective true.

If domain controllers replicate each other without any issues and there isn’t any modification in numbers of them (adding, removing, etc.) topology should look very the same on every DC and above solution is absolutely enough. But to have proper recognition of condition of AD environment during its modification there is needed something more comprehensive.

Here is my trial to find full overview of AD physical topology and condition of replication as a side effect of quering every particular domain controller in our environment. Below vbs script queries all DCs found in AD, formats information about sites, servers and connection objects into dot syntax and controls pictures of nodes (here: domain controllers) and labels of edges (here: connection objects) to report issues in topology: orphan or not accessible DCs or connection objects just generated and not seen by other DCs.

Practice:

Vbs script to query all DCs:

getReplicationTopology.zip

usage:

cscript /nologo getReplicationTopology.vbs

Example of dot code generated by above vbs script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
DIGRAPH replicationTopology {
 
	label = "Reference DC: POZ-DC1";
	labelloc = t;
	fontname = helvetica;
	node [fontname = helvetica, image = "server.png", labelloc = b, color = white];
	edge [style = dotted fontname = helvetica fontsize = 8.0];
 
	SUBGRAPH cluster_WRO {
	label = "Site: WRO\lSubnets:\l10.10.10.0/24\l"
 
	WRO_DC1 [label = "WRO-DC1.qa.local" image = "noaccess.png"];
 
	}
 
	SUBGRAPH cluster_POZ {
	label = "Site: POZ\lSubnets:\l10.20.20.0/24\l"
 
	POZ_DC1 [label = "POZ-DC1.qa.local"];
 
	}
 
	SUBGRAPH cluster_WAW {
	label = "Site: WAW\lSubnets:\l10.30.30.0/24\l"
 
	}
 
	POZ_DC1 -> WRO_DC1;
	WRO_DC1 -> POZ_DC1;
}

and diagram:

fdp4

Note:

Pictures of nodes used in diagrams:

server DC queried by vbs script

noaccessDC not queried by vbs script because of communication issue

orphanOrphan DC not fully removed from AD during decommission

Gallery:

dot5

fdp6

fdp7

 

Theory:

1. How Active Directory Replication Topology Works

2. KCC and Topology Generation

3. Active Directory Topology Visualization part 1

 

Leave a Reply