/// <summary> /// Create a new zone in MS DNS Server /// </summary> /// <param name="zoneName">The zone to create</param> /// <param name="zoneType">The type of zone to create</param> /// <returns>The domain</returns> public DNSDomain CreateNewZone(string zoneName, NewZoneType zoneType) { try { ManagementObject mc = new ManagementClass(_scope, new ManagementPath("MicrosoftDNS_Zone"), null); mc.Get(); ManagementBaseObject parameters = mc.GetMethodParameters("CreateZone"); /* * [in] string ZoneName, * [in] uint32 ZoneType, * [in] boolean DsIntegrated, (will always be false for us, if you need AD integration you will need to change this. * [in, optional] string DataFileName, * [in, optional] string IpAddr[], * [in, optional] string AdminEmailName, */ parameters["ZoneName"] = zoneName; parameters["ZoneType"] = (UInt32)zoneType; parameters["DsIntegrated"] = 0; //false ManagementBaseObject createdEntry = mc.InvokeMethod("CreateZone", parameters, null); DNSDomain d = new DNSDomain(zoneName, createdEntry, this); return(d); } catch (ManagementException) //returns generic error when it already exists, I'm guessing this is a generic answer! { throw new ApplicationException("Unable to create the zone " + zoneName + ", please check " + "the format of the name and that it does not already exist."); } }
/// <summary> /// Create a new zone in MS DNS Server /// </summary> /// <param name="zoneName">The zone to create</param> /// <param name="zoneType">The type of zone to create</param> /// <returns>The domain</returns> public DNSDomain CreateNewZone(string zoneName, NewZoneType zoneType) { try { ManagementObject mc = new ManagementClass(_scope, new ManagementPath("MicrosoftDNS_Zone"), null); mc.Get(); ManagementBaseObject parameters = mc.GetMethodParameters("CreateZone"); /* [in] string ZoneName, [in] uint32 ZoneType, [in] boolean DsIntegrated, (will always be false for us, if you need AD integration you will need to change this. [in, optional] string DataFileName, [in, optional] string IpAddr[], [in, optional] string AdminEmailName, */ parameters["ZoneName"] = zoneName; parameters["ZoneType"] = (UInt32)zoneType; parameters["DsIntegrated"] = 0; //false ManagementBaseObject createdEntry = mc.InvokeMethod("CreateZone", parameters, null); DNSDomain d = new DNSDomain(zoneName, createdEntry, this); return d; } catch (ManagementException) //returns generic error when it already exists, I'm guessing this is a generic answer! { throw new ApplicationException("Unable to create the zone " + zoneName + ", please check " + "the format of the name and that it does not already exist."); } }