Экспорт записей DNS Windows Server в веб‑страницу

Быстрые ссылки
- Конфигурация
- Как это работает
- Скрипт
Конфигурация
Сборка и параметры просты. Нужно указать папку вывода, куда будут помещены файлы: index (default.htm) и по одному файлу в формате [domain].dns.zone.txt для каждой зоны. Файловая структура и имена можно настроить в скрипте, но по умолчанию предполагается стандартное имя зоны Windows DNS — [domain].dns.
Важно: если вы используете нестандартную схему именования файлов зон, скрипт не найдёт зоны и не сработает корректно.
Параметры, на которые стоит обратить внимание:
- OutPath — каталог, куда будут перемещены HTML и файлы зон (обычно веб‑корень, например C:\inetpub\wwwroot\dns).
- DeleteNotFound — опция удаления файлов зон, которые больше не загружены в DNS Server (1 = включено, 0 = выключено). По умолчанию выключена.
- Планирование — рекомендовано запускать скрипт через Планировщик задач (Task Scheduler), чтобы информация оставалась актуальной.
Примечание: выходные файлы — только для чтения (read‑only по замыслу), изменения в них не синхронизируются обратно в DNS Server.
Как это работает
Сценарий выполняет два шага:
- Считывает список файлов *.dns в системной папке DNS (%WinDir%\system32\dns). По каждому файлу берет имя зоны.
- Для каждой зоны вызывает DNSCmd с командой ZoneExport, что генерирует текстовый дамп зоны ([zone].dns.zone.txt). Затем файл перемещается в выходной веб‑каталог, а в default.htm добавляется ссылка на него.
Требования к окружению:
- Windows Server 2008 и новее: DNSCmd уже включена.
- Windows Server 2003: необходимо установить Resource Kit Tools, чтобы получить DNSCmd.
Если вы разместите папку вывода в публичном каталоге веб‑сервера, список будет доступен с любого устройства с браузером.

Клик по домену открывает текстовый дамп зоны с подробными записями DNS.

Скрипт
Ниже приведён собственно BAT‑скрипт без изменений — он готов к использованию, при необходимости поправьте переменные OutPath и DeleteNotFound.
@ECHO OFF
TITLE DNS Dump to HTML
ECHO DNS Dump to HTML
ECHO Written by: Jason Faulkner
ECHO SysadminGeek.com
ECHO.
ECHO. SETLOCAL EnableDelayedExpansion REM Directory where the HTML pages should be generated.
SET OutPath=C:inetpubwwwrootdns
SET HTMLPage=default.htm REM HTML page title/header.
SET Title=DNS RecordsREMDelete DNS record files which arenot currently loaded in the DNS server (1=Yes, 0=No)
SET DeleteNotFound=0 DEL /Q "%OutPath%*"
SETOutFile="%OutPath%%HTMLPage%"REM HTML header info. Customize as needed.
ECHO ^ >> %OutFile%
ECHO ^ >> %OutFile%
ECHO ^%Title%^ >> %OutFile%
ECHO ^ >> %OutFile%
ECHO ^ >> %OutFile%
ECHO ^%Title%^ >> %OutFile%
ECHO ^Machine Name: %ComputerName%^
>> %OutFile%
ECHO ^Generated on: %Date% %Time%^
>> %OutFile%
SET DNSDir=%WinDir%system32dns
FOR /F %%A IN ('DIR /A:-D /B /L %DNSDir%*.dns') DO (
SET Zone=%%A
SET Zone=!Zone:.dns=!
SET ZoneFile=!Zone!.dns.zone.txt
ECHO Exporting: !Zone!
DNSCmd . /ZoneExport !Zone! !ZoneFile!
IF NOT EXIST %DNSDir%!ZoneFile! (
ECHO !Zone! is not currently loaded in DNS Server.
IF {%DeleteNotFound%}=={1} DEL /F /Q %DNSDir%%%A
) ELSE (
ECHO ^!Zone!^^
>> %OutFile%
REM Output is always to DNS directory, so move the file to the HTML dir.
MOVE /Y %DNSDir%!ZoneFile! "%OutPath%!ZoneFile!"
)
ECHO.
)
ECHO ^
>> %OutFile%
ECHO ^ >> %OutFile%
ECHO ^ >> %OutFile%
ENDLOCAL
Скачать скрипт: Download DNS Dump to HTML Script from SysadminGeek.com
Скачать Resource Kit (если нужно для Server 2003): Download Windows Server 2003 Resource Kit Tools from Microsoft
Пошаговое руководство по развёртыванию
- Скопируйте BAT‑файл на сервер с DNS и поместите его в удобную папку.
- Откройте и отредактируйте переменные OutPath и DeleteNotFound в начале скрипта.
- Убедитесь, что указанный OutPath доступен веб‑серверу (IIS, Apache) для просмотра по HTTP.
- Запустите скрипт вручную для первой проверки. Проверьте, появились ли default.htm и файлы *.dns.zone.txt в каталоге вывода.
- Настройте Планировщик задач Windows (Task Scheduler) для регулярного запуска (ежедневно/ежечасно в зависимости от частоты изменений).
Пример команды для создания задания (из командной строки с правами администратора):
schtasks /Create /SC DAILY /TN “DNSDump” /TR “C:\inetpub\wwwroot\dns\dump.bat” /ST 02:00
(Отрегулируйте путь и время запуска под свою инфраструктуру.)
Критерии приёмки
- В каталоге OutPath появился файл default.htm с ссылками на зоны.
- Для каждой зоны с именем [zone].dns сгенерирован файл [zone].dns.zone.txt.
- При переходе по ссылке в браузере отображается текстовый дамп зоны.
- При включённом DeleteNotFound неактуальные файлы зон удаляются из DNS‑каталога.
Ролевые чек‑листы
Системный администратор:
- Проверить наличие DNSCmd и права на запуск.
- Настроить доступ к OutPath из веб‑сервера.
- Добавить задачу в Планировщик задач.
Оператор/инженер поддержки:
- Проверить корректность ссылок и читаемость файлов зон.
- Тестировать доступ извне (если папка публичная).
Безопасность/комплаенс:
- Убедиться, что публичный доступ допустим политиками компании.
- При необходимости защитить папку аутентификацией или ограничить IP‑доступ.
Частые проблемы и их решение
Скрипт ничего не экспортирует:
- Проверьте, что в %WinDir%\system32\dns находятся файлы *.dns и имена соответствуют шаблону.
- Убедитесь, что DNSCmd доступна и исполняется от имени администратора.
Файлы зон не перемещаются в OutPath:
- Проверьте права доступа на исходную и целевую папки.
- Убедитесь, что нет антивирусных или файловых блокировщиков.
Безопасность: нельзя публиковать внутренние зоны в публичный доступ? — Не публикуйте. Держите OutPath только внутри защищённой сети.
Мини‑методология и рекомендации
- Частота экспорта зависит от динамичности инфраструктуры: для статичных зон достаточно раза в сутки; для часто меняющихся — каждые 15–60 минут.
- Для удобства именуйте OutPath внутри веб‑корня в отдельной папке, например /dns, и используйте базовую аутентификацию при необходимости.
- Храните скрипт в системе контроля версий и документируйте изменения переменных.
1‑строчный глоссарий
- DNSCmd — командная утилита Windows для управления DNS Server через командную строку.
- ZoneExport — команда DNSCmd, экспортирующая содержимое зоны в текстовый файл.
Итог
Этот простой подход предоставляет быстрый read‑only доступ к текущим записям DNS через веб‑интерфейс без установки дополнительных сложных панелей. Он полезен для быстрого просмотра зон, проверки конфигураций и предоставления информации инженерам и поддержке.
Важно: перед публикацией убедитесь, что политика безопасности компании допускает открытие содержимого зон во внешней сети.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента