De l’étrange aujourd’hui…
Un petit script ‘Powershell’ qui sort le plan du réseau (ranges et DC par sites) depuis les infos de l’active directory et qui les mets en forme pour graphviz. (C’est laborieux pour moi le powershell !). Oui… le simple user a droit à de l’info !
Import-Module ActiveDirectory write-output 'digraph G {' $configNCDN = (Get-ADRootDSE).ConfigurationNamingContext $siteContainerDN = ("CN=Sites," + $configNCDN) $siteObjs = Get-ADObject -SearchBase $siteContainerDN -filter { objectClass -eq "site" } -properties "siteObjectBL", name foreach ($siteObj in $siteObjs) { $subnetArray = New-Object -Type string[] -ArgumentList $siteObj.siteObjectBL.Count foreach ($subnetDN in $siteObj.siteObjectBL) { $subnetName = $subnetDN.SubString(3, $subnetDN.IndexOf(",CN=Subnets,CN=Sites,") - 3) write-Output "`"$($siteObj.Name)`" -> `"$subnetName`" ;" } $siteName = $siteObj.Name $configNCDN = (Get-ADRootDSE).ConfigurationNamingContext $siteContainerDN = ("CN=Sites," + $configNCDN) $serverContainerDN = "CN=Servers,CN=" + $siteName + "," + $siteContainerDN $dcObjs= Get-ADObject -SearchBase $serverContainerDN -SearchScope OneLevel -filter { objectClass -eq "Server" } -Properties "DNSHostName" foreach ($dcobj in $dcObjs) { if ($dcobj.DNSHostName) { write-output "`"$($dcobj.DNSHostName)`" -> $siteName ;" } } } write-output "}"
Petit tips, pour pas tuer son graphviz, ne pas oublier de faire la sortie en ascii et pas en unicode !
PS C:\temp> .\list_netsite.ps1 | Out-File toto.gviz -encoding ascii