Tenemos múltiples zonas DNS, y qué buscar registros DNS estáticos que ya no responden a los pings y eliminarlos.
He escrito un script de PS, pero tengo dos problemas.
1: la conexión de prueba falla a menos que utilice el FQDN. Parece que no puedo descubrir cómo poner el FQDN de los registros DNS fallidos en una variable que funcione con la conexión de prueba.
2: cuando intento utilizar la conexión de prueba con un dominio grande, devuelve un error de infracción de cuota.
Aquí está mi código:
$zones = Get-Content "C:\Users\ddavidson.EMF\Documents\Test\zones.txt"
$OutFile = Write-Output "C:\Users\ddavidson.EMF\Documents\Test\logfile.txt"
$hostn = Get-dnsserverresourcerecord -ComputerName "DNSBox" -zonename "ourzone.com" -RRType A
$zone = Get-DnsServerZone -ComputerName "DNSBox"
$zones = $zone.zonename
$names = $hostn.hostname
$hostna = $names + "." + $zone"
foreach ($name in $names){
if (Test-Connection -ComputerName $names -Count 1 -ErrorAction SilentlyContinue){
Write-Host "$name, Up"
#Write-Output "$name, Up" | Out-File $OutFile -Append
}
else{
Write-Host "$name,Down"
#Write-Output "$name" | Out-File $OutFile -Append
Remove-DnsServerResourceRecord -zonename "ourzone.com" -ComputerName rklw303pv -name $names -Force
}
}
Por ahora, dejé de obtener las zonas del servidor y simplemente las codifiqué.
Soy increíblemente nuevo en PS y he estado buscando cosas que me ayuden, pero no he podido encontrar nada.
TIA para todos y cada uno.
Respuesta1
foreach ($name in $names){
if (Test-Connection -ComputerName $names -Count 1 -ErrorAction SilentlyContinue){
Write-Host "$name, Up"
#Write-Output "$name, Up" | Out-File $OutFile -Append
}
else{
Write-Host "$name,Down"
#Write-Output "$name" | Out-File $OutFile -Append
Remove-DnsServerResourceRecord -zonename "ourzone.com" -ComputerName rklw303pv -name $names -Force
}
}
En tu test-connection
especificas -ComputerName $nameS
:
Con eso, test-connection
enviará un ping a cada entrada en $names
. Además, hará ping a todo su dominio para cada miembro con el archivo foreach ($name in $names)
. Entonces, si tienes un dominio grande, esto puede explicar tu problema de cuota.
Puedes probar con:
if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue)
$nombre sin els