2015-09-21 53 views
0

我想从选定的区域使用下面的代码删除主机,但不能删除。从DNS区域删除主机

 string Query = "SELECT * FROM MicrosoftDNS_Zone WHERE ContainerName = '" + ZoneName + "' and OwnerName='" + recordName + "'"; 

     ObjectQuery qry = new ObjectQuery(Query); 
     ManagementScope scope = new ManagementScope(@"\\" + dnsServerName + "\\root\\MicrosoftDNS"); 
     scope.Connect(); 
     ManagementObjectSearcher s = new ManagementObjectSearcher(scope, qry); 
      ManagementObjectCollection col = s.Get(); 
      foreach (ManagementObject obj in col) 
      { 
       obj.Delete(); 
      } 

请帮忙。

+0

您的代码很容易发生SQL注入! –

+0

如果它是SQL,而不是WMI方言。 – CodeCaster

+0

@rahul:我想从dns中的选定区域删除记录。 –

回答

0

下面是删除域记录的代码。

bool DeleteRecordFromDns(string ZoneName, string dnsServerName, string recordName) 
    { 
     try 
     { 
      string Query = string.Format("SELECT * FROM MicrosoftDNS_AType WHERE OwnerName = '{0}.{1}'", recordName, ZoneName); 
      ObjectQuery qry = new ObjectQuery(Query); 
      ManagementScope scope = new ManagementScope(@"\\" + dnsServerName + "\\root\\MicrosoftDNS"); 
      scope.Connect(); 
      ManagementObjectSearcher s = new ManagementObjectSearcher(scope, qry); 
      ManagementObjectCollection col = s.Get(); 
      if (col.Count > 0) 
      { 
       foreach (ManagementObject obj in col) 
       { 
        obj.Delete(); 
       } 
       return true; 
      } 
      else 
      { 
       return false; 
      } 

     } 
     catch (Exception) 
     { 
      return false; 
     } 
    }