Как да изтриете DNS зона с WMI

Мога да създам нова зона, да добавя и изтривам записи за тази зона, всичко това относително лесно с помощта на WMI и System.Management, но за живота си не мога да разбера как да изтрия зона. Изглежда, че не е метод в WMI документацията:

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

Някакви мисли как да направите това? Опитвам се да поддържам DNS сървъра чист, когато премахваме стари клиенти на уебсайтове, но мога да се справя само с изтриване на всички записи в зона.

РЕДАКТИРАНЕ: Това е на Windows Server 2008 R2 машина. И бих се съгласил с отговор „не използвайте WMI“, ако има алтернативно решение, което мога да изпълня от отдалечена машина и код на c#


person Chris Curtis    schedule 30.09.2010    source източник


Отговори (1)


Можете да изтриете зони по същия начин, по който бихте изтрили запис.

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;
        }
    }
person mcass20    schedule 12.10.2010
comment
Ти си рок звезда! Не съм сигурен какво представлява класът DnsProvider, но успях да го заменя с обекта ManagementScope, който в момента използвах в другите си методи за управление на DNS. Както и да е... проработи от първия опит! Благодаря милиони - person Chris Curtis; 15.10.2010
comment
Моля! Съжалявам, че не изяснявам класа DnsProvider, това е клас, който написах, за да подпомага управлението на DNS. Знаех, че ще го разбереш от това, което ти дадох. - person mcass20; 15.10.2010