terça-feira, 7 de dezembro de 2010

dnscmd - script para inserir e remover registros DNS no seu servidor de dns windows 2003


== O problema ==

Esses dias precisei inserir e remover registros MX no DNS do servidor do meu trabalho. São cerca de 40 subdomínios que contém MX, não é uma tarefa fácil inserir e remover esses registros manualmente. Com a ajuda de um colega, fizemos o script listado nesse post.


== A solução ==

Para utilizar o script, configure a variável "BASE" com o caminho da pasta base onde se encontra o script; configure a variável "DOMINIO" com o nome do seu domínio; crie um arquivo chamado subdominios.txt na mesma pasta onde se encontra o script, dentro desse arquivo liste todos os subdomínios que deseja alterar, não coloque ".aob.com", ou seja, o complemento do dominio, o arquivo deve ser da seguinte forma:

dominio1
dominio2
dominio3

Para rodar o script, passe os seguintes parametros:
parametro1 = add, para adicionar registros aos subdominios listados em subdominios.txt;
delete para fazer a remoção.
parametro2 = nome do servidor destino dos MX adicionados.
Ex.1:
script.bat add email.aob.com
Esse exemplo adicionará registros MX a todos subdomínios do arquivo subdominios.txt com destino em email.aob.com

Ex.2:
script.bat delete email.aob.com
Esse exemplo deletará todos os registros MX de todos subdomínios do arquivo subdominios.txt com destino em email.aob.com.



== O código do script segue abaixo: ==

@echo off
set BASE=C:\scripts\atualizamx\
set DOMINIO=aob.com

rem add, delete
set comando=%1

rem antispam1,antispam2,...
set servidor=%2

cd %sBase%

if "%1"=="delete" goto delete
if "%1"=="add" goto add
goto fim

:add
FOR /F %%s IN (subdominios.txt) DO (
dnscmd /recordadd %DOMINIO% %%s MX 10 %servidor%
)
goto fim


:delete
FOR /F %%s IN (subdominios.txt) DO (
dnscmd /recorddelete %DOMINIO% %%s MX 10 %servidor% /f
)

:fim

@echo on

2 comentários:

Anônimo disse...

Ótima dica cara!

Mas e se eu precisar adicionar netradas de Host (A) para maquinas que estão listadas em um arquivo txt.. como faço para passar os endereços IP referente a cada máquina?
valeu!

Andre O. B. disse...

Opa! Se entendi a pergunta, nesse script não dá para fazer isso.
Você terá que incrementar esse script para receber esse arquivo com os ips como parametro.