Как программно добавить псевдоним DNS? - PullRequest
4 голосов
/ 03 сентября 2010

Я хочу создать запись псевдонима на DNS-сервере Microsoft, чтобы указать AliasA на ComputerA. Как я могу сделать это программно?

Ответы [ 2 ]

2 голосов
/ 08 сентября 2010

Я использовал WMI для этого, нашел пример в Интернете, и вот как это выглядело.

   private ManagementScope _session = null;

   public ManagementPath CreateCNameRecord(string DnsServerName, string ContainerName, string OwnerName, string PrimaryName)
    {
        _session = new ManagementScope("\\\\" + DnsServerName+ "\\root\\MicrosoftDNS", con);
        _session.Connect();

        ManagementClass zoneObj = new ManagementClass(_session, new ManagementPath("MicrosoftDNS_CNAMEType"), null);
        ManagementBaseObject inParams = zoneObj.GetMethodParameters("CreateInstanceFromPropertyData");
        inParams["DnsServerName"] = ((System.String)(DnsServerName));
        inParams["ContainerName"] = ((System.String)(ContainerName));
        inParams["OwnerName"] = ((System.String)(OwnerName));
        inParams["PrimaryName"] = ((System.String)(PrimaryName));
        ManagementBaseObject outParams = zoneObj.InvokeMethod("CreateInstanceFromPropertyData", inParams, null);

        if ((outParams.Properties["RR"] != null))
        {
            return new ManagementPath(outParams["RR"].ToString());
        }

        return null;
    }
0 голосов
/ 03 сентября 2010

Я не думаю, что в .NET есть что-то для обеспечения доступа к ним (все, что я могу найти в небольшом поиске, это ссылки на проприетарные библиотеки, элементы управления и т. Д.), Поэтому вам, вероятно, придется использовать Win32 API через P / Invoke (хотя другой возможностью было бы сделать работу через WMI).

Вы начнете с DnsAcquireContextHandle, затем (вероятно) DnsQuery, чтобы получить текущий набор записей, измените его содержимое, добавив новый псевдоним, DnsReplaceRecordSet, чтобы DNS-сервер использовал новый набор записей, и, наконец, DnsReleaseContextHandle, чтобы завершить работу.

Конечно, вам понадобятся необходимые разрешения на сервере, или ничего из этого не будет работать вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...