如何以编程方式删除DNS域?

mca*_*s20 7 .net c# dns wmi

我正在构建一个C#Web应用程序来管理我们的DNS服务器,我正在使用WMI命名空间来处理所有事情.我唯一遇到的问题是删除DNS域名.这是我的代码:

internal static bool DeleteDomainFromDns(string DnsServerName, string ContainerName, string Name)
    {
        try
        {
            string Query = "SELECT * FROM MicrosoftDNS_Domain WHERE DnsServerName = '" + DnsServerName + "' AND ContainerName = '" + ContainerName + "' AND Name = '" + Name + "'";
            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(); //Exception occurs here
            }
            return true;
        }
        catch (Exception)
        {
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:ManagementException被捕获"通用失败".我已经在线阅读了人们使用区域命名空间删除域名的情况,但只有在您要删除的域名是区域本身时才有效.我需要删除不是区域的域.有人可以帮忙吗?

RJ.*_*RJ. 2

我还没有找到使用 WMI 删除域的方法,并且还检查了名为 DNSShell 的 Powershell 管理单元,但看起来没有删除域的命令。