2010-09-30 60 views
3

我可以创建一个新的区域,添加和删除该区域的记录,所有使用WMI和System.Management都相对容易,但对于我的生活无法弄清楚如何删除一个区域。它不会出现是在WMI文档的方法:如何删除与WMI的DNS区域

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

如何做到这一点有什么想法?当我们删除旧网站客户时,试图保持DNS服务器清洁,但我只能像删除区域中的所有记录一样好。

编辑:这是在Windows服务器2008 R2计算机上。我可以回答“不要使用WMI”,如果有一个替代解决方案,我可以从远程计算机和c#中的代码执行。

回答

3

您可以使用与记录相同的方式删除区域。

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; 
     } 
    } 
+0

你是摇滚明星!我不确定DnsProvider类是什么,但是我能够用我当前在其他DNS管理方法中使用的ManagementScope对象替换它。无论如何...工作第一次尝试!万分感谢 – 2010-10-14 21:09:36

+0

不客气!对不起,我没有说明DnsProvider类,它是我编写的一个类,用于协助DNS管理。我知道你会从我给你的东西中弄明白。 – mcass20 2010-10-15 12:37:21