Comment puis-je rechercher un enregistrement intégré DNS Domaine

Exemple:

J'ai un serveur nommé server1.domain.local

J'ai beaucoup de disques CNAME Dans divers domaines d'observation directe pointant vers server1.domain.local

Je veux écrire server1 et avoir un nouveau serveur server2, Qui le remplacera.

J'ai besoin de changer tout mon CNAME, Indiquant sur server1.domain.local, sur server2.domain.local.

Je sais que je peux créer server1.domain.local comme un autre CNAME, Mais je préférerais simplement trouver toutes les entrées et les changer séparément.

Comment puis-je trouver tous les liens vers server.domain.local Dans tous les domaines de la visualisation directe?
Invité:

Babette

Confirmation de:

DANS

dnscmd

Utilitaire de soutien Windows, Probablement votre meilleur choix. Vous pouvez obtenir une liste de toutes les zones. DNS Avec l'aide de la commande:

dnscmd [servername] /EnumZones

. Vous pouvez répertorier tous les enregistrements. CNAME Dans chaque zone à l'aide de la commande:

dnscmd [servername] /EnumRecords [zone name] . /TYPE CNAME

.

Théoriquement, vous pouvez associer ces deux ensemble dans le script, traiter la sortie et apporter automatiquement les modifications nécessaires. (Aussi en utilisant

dnscmd

de

/RecordDelete

et

/RecordAdd

Équipes). Cet exercice je vous quitterai (jusqu'à).

Changer: bon - Je ne peux pas résister. Voici ce script. Ce sera seulement

echo

Équipes qui apportent vraiment des changements. S'il fait ce que tu veux, tu peux tirer

echo

Commandes et laisser casser.

@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

Emilie

Confirmation de:

Ce sont des zones intégrées AD? Sinon, vous pouvez modifier manuellement des fichiers de zone à l'aide d'un bloc-notes (Trouver et remplacer), Puis redémarrez les zones.

ÉDITER

Reprocher. Je n'ai pas vu dans votre en-tête que ce sont des zones intégrées AD. Vous pouvez toujours utiliser la méthode que j'ai publiée en modifiant les zones vers des zones non intégrées à AD, édité par des fichiers de zone qui seront créés et les ont ensuite modifiés dans des zones intégrées à AD. C'est un peu comme le piratage, il peut donc ne pas être la méthode que vous préféreriez utiliser.

Babette

Confirmation de:

Une des méthodes - Courir

nslookup

De l'un de vos serveurs DNS ou un système autorisé à transmettre une zone. Avec

nslookup

À faire

ls > file

qui demande une copie de la base de données de zone et l'enregistre dans un fichier texte. Utilisez ensuite la fonction de recherche dans votre éditeur de texte préféré pour rechercher ce que vous devez corriger.

Pour répondre aux questions, connectez-vous ou registre