Как удалить зону DNS с помощью WMI - PullRequest
3 голосов
/ 30 сентября 2010

Я могу создать новую зону, добавлять и удалять записи для этой зоны, и все относительно легко, используя WMI и System.Management, но пока не могу понять, как удалить зону.Это не похоже на метод в документации WMI:

http://msdn.microsoft.com/en-us/library/ms682123(VS.85).aspx

Есть мысли о том, как это сделать?Попытка поддерживать DNS-сервер в чистоте, когда мы удаляем старых клиентов веб-сайта, но я могу добиться того же, что и удалить все записи в зоне.

РЕДАКТИРОВАТЬ: Это на машине Windows Server 2008 R2.И я был бы согласен с ответом «не использовать WMI», если есть альтернативное решение, которое я могу выполнить с удаленной машины и код на c #

1 Ответ

3 голосов
/ 12 октября 2010

Вы можете удалять зоны так же, как и при записи.

internal static bool DeleteZoneFromDns(string ZoneName)
    {
        try
        {
            string Query = "SELECT * FROM MicrosoftDNS_Zone WHERE ContainerName = '" + ZoneName + "'";
            ObjectQuery qry = new ObjectQuery(Query);
            DnsProvider dns = new DnsProvider();
            ManagementObjectSearcher s = new ManagementObjectSearcher(dns.Session, qry);
            ManagementObjectCollection col = s.Get();
            dns.Dispose();

            foreach (ManagementObject obj in col)
            {
                obj.Delete();
            }
            return true;
        }
        catch (Exception)
        {
            return false;
        }
    }
...