scripts/PowerShell/Scripts/Remove-AllVNetLinksInPrivateDnsZones.ps1 (25 lines of code) (raw):
[CmdletBinding()]
param (
[Parameter(Position = 0)]
[string] $SubscriptionId,
[Parameter(Position = 1)]
[string] $ResourceGroupName,
[Parameter(Position = 2)]
[string]$Environment = 'AzureCloud'
)
# Import the Azure subscription management module
Import-Module ..\Modules\AzSubscriptionManagement.psm1
# Determine if a cloud context switch is required
Set-AzContextWrapper -SubscriptionId $SubscriptionId -Environment $Environment
# Remove the module from the session
Remove-Module AzSubscriptionManagement -WhatIf:$false
# Get all private DNS zones in the specified resource group
$privateDnsZones = Get-AzPrivateDnsZone -ResourceGroupName $ResourceGroupName
# Iterate through each private DNS zone
foreach ($zone in $privateDnsZones) {
Write-Verbose "Processing zone: $($zone.Name)"
# Get all virtual networks linked to this DNS zone
Get-AzPrivateDnsVirtualNetworkLink -ZoneName $zone.Name -ResourceGroupName $ResourceGroupName `
| Remove-AzPrivateDnsVirtualNetworkLink
}
Write-Host "All virtual networks unlinked from all Azure Private DNS Zones in Resource Group '$ResourceGroupName'."