Comment puis-je searchr des inputs DNS embeddedes par domaine

Exemple:

  1. J'ai un server nommé server1.domain.local
  2. J'ai beaucoup d'inputs CNAME dans différentes zones de search directe pointées vers server1.domain.local
  3. Je souhaite décommerger server1 et avoir un nouveau server, server2, qui va le replace.

J'ai besoin de changer tous mes CNAME qui indiquent server1.domain.local pour pointer vers server2.domain.local.

Je sais que je peux créer server1.domain.local comme un autre CNAME, mais je préférerais simplement find toutes les inputs et les modifier individuellement.

Comment puis-je find toutes les references dans toutes les zones de search directe sur server.domain.local?

L'utilitaire dnscmd partir des outils de support de Windows est probablement votre meilleur pari. Vous pouvez get une list de toutes les zones DNS avec la command: dnscmd [servername] /EnumZones . Vous pouvez énumérer tous les loggings CNAME dans chaque zone avec la command: dnscmd [servername] /EnumRecords [zone name] . /TYPE CNAME dnscmd [servername] /EnumRecords [zone name] . /TYPE CNAME .

En théorie, vous pouvez stringr ces deux set dans un script, traiter la sortie et faire les changements que vous voulez automatiquement (en utilisant également dnscmd avec les commands /RecordDelete et /RecordAdd ). C'est un exercice que je vais vous laisser (pour l'instant).

Edit: Okay – Je ne pouvais pas résister. Voici ce script. Il ne fera que echo aux commands qui font réellement des changements. Si cela fait ce que vous voulez, vous pouvez tirer les commands d' echo et laisser échouer.

 @echo off set SERVER_TO_REPLACE=server1.domain.com set REPLACEMENT_VALUE=server2.domain.com rem Quick and dirty list of Primary zones that aren't Reverse zones for /F "usebackq" %%i in (`dnscmd %1 /EnumZones ^| find " Primary" ^| find /v " Rev"`) do call :process_zone %1 %%i goto end :process_zone rem Quick and dirty enumeration of all CNAME records in a zone for /F "usebackq tokens=1,3,4" %%i in (`dnscmd %1 /EnumRecords %2 . /TYPE CNAME ^| find " CNAME"`) do call :process_RR %1 %2 %%i %%j %%k goto end :process_RR rem Check a record and alter it if necessary if /I "%5" EQU "%SERVER_TO_REPLACE%" ( echo dnscmd %1 /RecordDelete %2 %3 %4 %5 /f echo dnscmd %1 /RecordAdd %2 %3 %4 %REPLACEMENT_VALUE% ) :end 

Une méthode serait d'exécuter nslookup partir de l'un de vos servers DNS, ou d'un système autorisé à effectuer un transfert de zone. Avec nslookup effectuez un ls > file qui requestra une copy de la database de zone et l'savea dans un file text. Ensuite, la fonctionnalité de search dans votre éditeur de text préféré pour find des choses à réparer.

Ces zones embeddedes AD sont-elles? Sinon, vous pouvez modifier manuellement les files de zone avec le bloc-notes (find et replace), puis recharger les zones.

MODIFIER

Ma faute. Je n'ai pas vu dans votre titre que ce sont des zones embeddedes à AD. Vous pouvez toujours utiliser la méthode que j'ai affichée en modifiant les zones vers des zones embeddedes non AD, en éditant les files de zone qui seront créés, puis en les modifiant dans les zones embeddedes AD. C'est un peu un hack, donc ce n'est peut-être pas la méthode que vous préférez utiliser.