diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/DnsCommands.cs b/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/DnsCommands.cs index 66603c23..b0914e21 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/DnsCommands.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/DnsCommands.cs @@ -228,6 +228,9 @@ namespace WebsitePanel.Providers.DNS .Where( r => null != r ) .Where( r => r.RecordType != DnsRecordType.SOA ) // .Where( r => !( r.RecordName == "@" && DnsRecordType.NS == r.RecordType ) ) + .OrderBy( r => r.RecordName ) + .ThenBy( r => r.RecordType ) + .ThenBy( r => r.RecordData ) .ToArray(); } @@ -303,13 +306,18 @@ namespace WebsitePanel.Providers.DNS ps.RunPipeline( cmd ); } - public static void Remove_DnsServerResourceRecord( this PowerShellHelper ps, string zoneName, string Name, string type ) + public static void Remove_DnsServerResourceRecord( this PowerShellHelper ps, string zoneName, string Name, string type, string recordData ) { - // Remove-DnsServerResourceRecord -ZoneName xxxx.com -Name "@" -RRType Soa -Force + if (String.IsNullOrEmpty(Name)) Name = "@"; + var cmd = new Command( "Remove-DnsServerResourceRecord" ); cmd.addParam( "ZoneName", zoneName ); - cmd.addParam( "Name", Name ); + cmd.addParam( "Name", Name ); cmd.addParam( "RRType", type ); + + if (!String.IsNullOrEmpty(recordData)) + cmd.addParam("RecordData", recordData); + cmd.addParam( "Force" ); ps.RunPipeline( cmd ); } diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/MsDNS.cs b/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/MsDNS.cs index d0c6c03a..6cab0d99 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/MsDNS.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.DNS.MsDNS2012/MsDNS.cs @@ -172,7 +172,7 @@ namespace WebsitePanel.Providers.DNS string rrType; if( !RecordTypes.rrTypeFromRecord.TryGetValue( record.RecordType, out rrType ) ) throw new Exception( "Unknown record type" ); - ps.Remove_DnsServerResourceRecord( zoneName, record.RecordName, rrType ); + ps.Remove_DnsServerResourceRecord( zoneName, record.RecordName, rrType, record.RecordData ); } catch( Exception ex ) {