2016-03-23 3 views
1

versucht zu sehen, ob jemand eine bekannte Problemumgehung für die Verwendung des Cmdlets test-connection in Powershell zum Pingen von Platzhaltereinträgen in DNS hat.Test-Verbindung, die Platzhalter unterstützt? Problemumgehung?

Ich versuche, unsere DNS db zu bereinigen und eine Liste von unserem BIND-Server exportiert und bin gerade dabei, durch die mehr als 600 Maschinen zu pingen, um zu sehen, ob irgendetwas reagiert. Ich habe mein eigenes einfaches Skript erstellt, aber ich habe auch eines gefunden, das in diesem Forum etwas besser funktioniert. Das Skript funktioniert, aber die Cmdlet-Hilfedateien geben an, dass der Parameter -computername keine Platzhalter unterstützt. Wenn ich das Skript ausführe, melden alle CNAME-Datensätze tatsächlich down/false, wenn sie tatsächlich reagieren sollen. Der Code ich benutze ist unten und ist eine Art chaotisch, aber ich nur etwas schnell benötigt und es funktioniert, aber ich habe es als Referenz unten enthalten:

Get-Content -path C:\Work\testy.txt | ForEach-Object { Test-Connection -ComputerName $_ -Count 1 -AsJob } | Get-Job | Receive-Job -Wait | Select-Object @{Name='ComputerName';Expression={$_.Address}},@{Name='Reachable';Expression={if ($_.StatusCode -eq 0) { $true } else { $false }}} |out-file -FilePath c:\work\TEST.txt 
+0

Da es ein Wildcard-Datensatz ist, können Sie kann jedes Etikett ersetzen. '" .domain.tld "-replace '\ *', 'Wildcard'' –

+0

@ MathiasR.Jessen nicht _any_ label, denn wenn es als realer Datensatz existiert, wirst du etwas anderes anpingen. Aber Sie könnten etwas wählen, das sehr unwahrscheinlich ist, vorher benutzt worden zu sein. – briantist

+0

thanks guys. Ich werde es versuchen und sehen, wie es funktioniert. –

Antwort

1

Als pointed out by briantist, jede nicht vorhandene Satzname wird machen. Sie könnten eine GUID generieren die * in Ihrem Satznamen zu ersetzen:

"subdomain.domain.tld","*.domain.tld" |ForEach-Object { 
    Test-Connection -ComputerName $($_ -replace '\*',"$([guid]::NewGuid())") 
} 

Ihr Ausdruck, ob es „Erreichbar“ oder kann nicht auch vereinfacht werden:

@{Name='Reachable'; Expression={[bool]($_.StatusCode -eq 0)}} 
+0

Danke Mann, das hat perfekt funktioniert! –

Verwandte Themen