Powershell 测试支持通配符的连接?解决办法?

Powershell 测试支持通配符的连接?解决办法?,powershell,cmdlets,Powershell,Cmdlets,正在尝试查看是否有人有已知的解决方法,可以在powershell中使用test connection cmdlet ping DNS中的通配符项 我正试图清理我们的DNS数据库,并从我们的绑定服务器导出一个列表,我正在通过600多台机器进行ping,看看是否有任何响应。我自己制作了一个简单的脚本,但在这个论坛上也找到了一个稍微好一点的脚本。该脚本可以工作,但cmdlet帮助文件声明-computername参数不支持通配符,并且可以肯定的是,当我运行该脚本时,所有CNAME记录在实际应该响应时都

正在尝试查看是否有人有已知的解决方法,可以在powershell中使用test connection cmdlet ping DNS中的通配符项

我正试图清理我们的DNS数据库,并从我们的绑定服务器导出一个列表,我正在通过600多台机器进行ping,看看是否有任何响应。我自己制作了一个简单的脚本,但在这个论坛上也找到了一个稍微好一点的脚本。该脚本可以工作,但cmdlet帮助文件声明-computername参数不支持通配符,并且可以肯定的是,当我运行该脚本时,所有CNAME记录在实际应该响应时都报告为down/false。我正在使用的代码如下所示,有点凌乱,但我只是需要一些快速的东西,它可以工作,但我将其包含在下面以供参考:

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
如前所述,任何不存在的记录名都可以。您可以生成GUID来替换记录名中的
*

"subdomain.domain.tld","*.domain.tld" |ForEach-Object {
    Test-Connection -ComputerName $($_ -replace '\*',"$([guid]::NewGuid())")
} 
您关于是否“可到达”的表达式也可以简化:

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

因为它是通配符记录,所以可以替换任何标签<代码>“*.domain.tld”-替换“\*”,“通配符”@MathiasR.Jessen不是任何标签,因为如果它作为真实记录存在,您将ping其他内容。但是你可以选择一些以前不太可能用过的东西谢谢大家。我会试试看它是如何工作的。