2010-09-30 100 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