J’frai pas ça tous les jours !

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
This entry was posted in Network and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

AlphaOmega Captcha Classica  –  Enter Security Code