Public/Switch-NameServers.ps1
function Switch-NameServers { [CmdletBinding()] param( [Parameter(Mandatory=$True)] [Array] $NewZones, [String] $NS1, [String] $NS2, [String] $NS3, [String] $NS4 ) foreach ($z in $NewZones) { $RR = (Get-R53ResourceRecordSet -HostedZoneId $z.Id).ResourceRecordSets | Where {$_.Type -eq "NS"} $delChange = New-Object Amazon.Route53.Model.Change $delChange.Action = "DELETE" $delChange.ResourceRecordSet = $RR $change = New-Object Amazon.Route53.Model.Change $change.Action = "CREATE" $change.ResourceRecordSet = New-Object Amazon.Route53.Model.ResourceRecordSet $change.ResourceRecordSet.Name = $z.Name $change.ResourceRecordSet.Type = "NS" $change.ResourceRecordSet.TTL = 3600 $change.ResourceRecordSet.ResourceRecords.Add(@{Value=$NS1}) $change.ResourceRecordSet.ResourceRecords.Add(@{Value=$NS2}) $change.ResourceRecordSet.ResourceRecords.Add(@{Value=$NS3}) $change.ResourceRecordSet.ResourceRecords.Add(@{Value=$NS4}) Edit-R53ResourceRecordSet -HostedZoneId $z.Id -Region us-east-1 -ChangeBatch_Comment ("AutoSwitchNS at " + (Get-Date).DateTime) -ChangeBatch_Change $delChange,$change } } |