Lors de cette migration vers Active Directory 2008, je vais aussi en profiter pour migrer les DNS et DHCP vers Windows.




Ayant environs 200 ip fixes a gérer tant en interne que sur les différentes DMZ, je ne me voyais pas les ajouter une à une et créer les "reverses" … Donc, scriptons !

Pour cette migration j'ai extrais de mon DNS actuel sous Linux les informations que je place dans un fichier csv de la forme :


adresse-ip;nom


 



Le script quant à lui lit le fichier, crée les containers des reverses DNS et insère les enregistrements. Ce script perl fait appelle à la bibliothèque Win32::OLE :

 


#!/usr/bin/perl -w
use strict;
use utf8;
use Encode;
use Win32::OLE;

$Win32::OLE::Warn=2;
my $strServer="ad1.maboite.com";
my $dom="maboite.com";
my $objDNS=Win32::OLE->GetObject("winMgmts:\\$strServer\root\MicrosoftDNS");
my $objDNSZone=$objDNS->Get("MicrosoftDNS_Zone");
my $objRR=$objDNS->Get("MicrosoftDNS_ResourceRecord");

open FILE, "

foreach my $line (@address) {
my ($ip,$add)=split /;/,$line;
chop $add;
print "$ip -> $add\n";
my ($a,$b,$c,$d)=split /./, $ip;
my $fAdd="$add.$dom. IN A $ip";
my $arpa="$c.$b.$a.in-addr.arpa";
my $rAdd="$arpa IN PTR $add.$dom";
my $ret = $objDNSZone->CreateZone($arpa, 0 , True);
my $strNull = $objRR->CreateInstanceFromTextRepresentation(
$objDNSZone->Name,
$dom,
$fAdd,
$objOutParam);
$strNull = $objRR->CreateInstanceFromTextRepresentation(
$objDNSZone->Name,
$arpa,
$rAdd,
$objOutParam);
}