Если возникает необходимость создания большого количества статических записей типа A в зоне прямого просмотра DNS воспользуемся мощью PowerShell. Для этого предварительно подготовим файл в формате CSV.
Файл DNS-Create-A-Records-from-File.csv:
HostName;HostIP KOM-TCIN-ILO08;192.168.0.50 KOM-TCIN-AP001;192.168.2.10 KOM-TCIN-MC001;192.168.3.40 KOM-TCIN-PR018;192.168.5.11 KOM-TCIN-PR019;192.168.5.12
Содержимое файла считаем с помощью нижеприведённого скрипта PowerShell и, подключившись через WMI к удалённому серверу DNS, создадим соответствующее количество A-записей.
Скрипт DNS-Create-A-Records-from-File.ps1
# Блок переменных # $DNSServer - NetBIOS имя сервера DNS # $DNSFZone - DNS зона прямого просмотра # $DataFile - Путь к файлу CSV с входными данными # $DNSServer = "DC01" $DNSFZone = "holding.com" $DataFile = "C:\Tools\Scripts\DNS-Create-A-Records-from-File.csv" # # Подключение к удалённому экземпляру WMI # и обработка входных данных файла # $DNSRR = [WmiClass]"\\$DNSServer\root\MicrosoftDNS:MicrosoftDNS_ResourceRecord" $ConvFile = $DataFile + "_unicode" Get-Content $DataFile | Set-Content $ConvFile -Encoding Unicode Import-CSV $ConvFile -Delimiter ";" | ForEach-Object { $FQDN = $_.HostName + "." + $DNSFZone $IP = $_.HostIP $TextA = "$FQDN IN A $IP" [Void]$DNSRR.CreateInstanceFromTextRepresentation($DNSServer,$DNSFZone,$TextA) } Remove-Item $ConvFile
Дополнительные источники информации:
Работает отлично! Жаль, не могу найти похожее решение на обратную зону.
НЕ работает, вываливается ошибка:
Set-Content : Не удается найти параметр, соответствующий имени параметра "Encoding".
C:1adddns.ps1:10 знак:60
+ Get-Content $DataFile | Set-Content $ConvFile -Encoding <<<< Unicode
+ CategoryInfo : InvalidArgument: (:) [Set-Content], ParameterBindingExcepti
on
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.SetCon
tentCommand
Вероятно вы используете древнюю версию PowerShell
http://social.technet.microsoft.com/Forums/windowsserver/en-US/ffe67dca-8e68-4b94-96a1-227870bb62f5/problem-with-setting-encoding-for-sc-setcontent
Обратная ссылка: Remote Desktop Services – Строим отказоустойчивую ферму RD Connection Broker на базе Windows Server 2012 | Блог IT-KB /
Обратная ссылка: App-V 5 for RDS — Разворачиваем инфраструктуру повышенной доступности | Блог IT-KB /
Обратная ссылка: App-V 5 for RDS — Разворачиваем инфраструктуру повышенной доступности | vMind.ru /
не работает. Пишет
Method invocation failed because [System.Management.ManagementClass] does not contain a method named 'CreateInstanceFromTextRepresentation'.
Там действительно такого метода нет. Есть только CreateInstance. Версия powerShell 4.0
Заработало. Путь там неправильный написан в WmiClass. Слэши поубирались. Вот так должно быть.
"\\$DNSServer\root\MicrosoftDNS:MicrosoftDNS_ResourceRecord"
Надо как-то теперь в обратную зону добавлять.
Исправил форматирование
Я конечно дико извиняюсь. Но разве Add-DnsServerResourceRecord уже отменили? =) Или просто влом устанавливать модуль для DNS? =) К слову, PTR тоже можно будет этим же командлетом добавлять. ;-)
Александр, это старая запись. Я просто исправил побившееся форматирование. Не волнуйся так :)