Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


DJ Mogarych, можно было бы, но есть несколько "но", которые не очень позволяют так сделать. Да и скрипт в целом в общем уже готов...
Остались вопросы по поводу SOA и NS записей, вижу где они редактируются в GUI, но не нашел либо правильных командлетов, либо нужных для этого ключей. Однако если даже это останется нерешенным - подправлю руками, тем более что там все равно были бы замены относительно того что прописано в файлах зон BIND.
Как я говорил ранее посредством zone2json были получены вполне вменяемые json, исходя из них получилось что-то вот такое:
Код: Выделить весь код
$jsonzones = Get-ChildItem ./zones/*.json
foreach ($jsonzone in $jsonzones) {
    $Zone = $jsonzone.BaseName
    Add-DnsServerPrimaryZone -Name $Zone -ReplicationScope Domain -DynamicUpdate NonsecureAndSecure
    (Get-Content $jsonzone | ConvertFrom-Json).Records | Where-Object type -in A, MX, CNAME | ForEach-Object {
        if ($_.name -in '.', '*.') {
            $Name = $Zone
        } else {
            $Name = $_.name.TrimEnd('.')
        }
        $Type = $_.type
        $IP   = $_.content
        $prio = $_.prio

        Switch ($type) {
            A {
                Add-DnsServerResourceRecordA -AllowUpdateAny -CreatePtr -Name $Name -ZoneName $Zone -IPv4Address $IP
            }
            CNAME {
                Add-DnsServerResourceRecordCName -AllowUpdateAny -Name $Name -ZoneName $Zone -HostNameAlias $IP
            }
            MX {
                Add-DnsServerResourceRecordMX -AllowUpdateAny -Name $Name -ZoneName $Zone -MailExchange $IP -Preference $prio
            }
            Default {"WTF? $type is not correct type of DNS records for this script!"}
        }
    }
}
Пока это всё. Всем спасибо за вниманию

Отправлено: 17:06, 22-12-2021 | #7