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, "<intranet.csv"; my @intranet=<FILE>; close FILE;<fixed-ip.csv"; address="<FILE" my="">

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); } </fixed-ip.csv";>