42 lines
1.4 KiB
PowerShell
42 lines
1.4 KiB
PowerShell
|
|
function Get-RemoteDNS {
|
|||
|
|
<#
|
|||
|
|
.SYNOPSIS
|
|||
|
|
Module for remote view zones DNS, as well view and remove records
|
|||
|
|
Using module DNS Server (from RSAT set) via Invoke-Command (module installation is not required)
|
|||
|
|
.DESCRIPTION
|
|||
|
|
Example:
|
|||
|
|
Get-RemoteDNS dc-01
|
|||
|
|
.LINK
|
|||
|
|
https://github.com/Lifailon
|
|||
|
|
#>
|
|||
|
|
Param (
|
|||
|
|
$srv
|
|||
|
|
)
|
|||
|
|
if (!$srv) {
|
|||
|
|
Write-Host (Get-Help Get-RemoteDNS).DESCRIPTION.Text -ForegroundColor Cyan
|
|||
|
|
return
|
|||
|
|
}
|
|||
|
|
$zone = icm $srv {Get-DnsServerZone} | select ZoneName,ZoneType,DynamicUpdate,ReplicationScope,SecureSecondaries,
|
|||
|
|
DirectoryPartitionName | Out-GridView -Title "DNS Server: $srv" <EFBFBD>PassThru
|
|||
|
|
$zone_name = $zone.ZoneName
|
|||
|
|
if ($zone_name -ne $null) {
|
|||
|
|
$A = icm $srv {
|
|||
|
|
Get-DnsServerResourceRecord -ZoneName $using:zone_name | sort RecordType | select RecordType,HostName, @{
|
|||
|
|
Label="IPAddress"; Expression={$_.RecordData.IPv4Address.IPAddressToString}},TimeToLive,Timestamp
|
|||
|
|
} | select RecordType,HostName,IPAddress,TimeToLive,Timestamp | Out-GridView -Title "DNS Server: $srv | Zone: $zone_name" <EFBFBD>PassThru
|
|||
|
|
}
|
|||
|
|
if ($A -ne $null) {
|
|||
|
|
$RT = $A.RecordType
|
|||
|
|
$HN = $A.HostName
|
|||
|
|
$wshell = New-Object -ComObject Wscript.Shell
|
|||
|
|
$output = $wshell.Popup("Romove record $HN (type: $RT)",0,"Select",4)
|
|||
|
|
if ($output -eq 6) {
|
|||
|
|
icm $srv {
|
|||
|
|
Remove-DnsServerResourceRecord -ZoneName $using:zone_name -RRType $using:RT -Name $using:HN <EFBFBD>Force
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if ($output -eq 7) {
|
|||
|
|
Write-Host "Canceled"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|