You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell循环执行tnc端口检测命令的实现咨询

PowerShell 循环端口测试实现方案

该需求可直接通过PowerShell内置的循环逻辑和属性判断实现,以下是完整可用脚本:

# 自定义配置项
$targetHost = "替换为实际测试地址"
$targetPort = 替换为实际测试端口
$failureLogPath = "替换为日志存储路径,例如:C:\TcpTestFailure.log"

while ($true) {
    $testResult = tnc -ComputerName $targetHost -Port $targetPort
    # 仅测试失败时执行输出和日志记录
    if ($testResult.TcpTestSucceeded -eq $false) {
        # 控制台输出失败信息
        Write-Host "`n=== 端口测试失败 $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') ==="
        $testResult | Format-List

        # 追加写入失败日志到文件
        "`n=== 端口测试失败 $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') ===" | Out-File -FilePath $failureLogPath -Append -Encoding UTF8
        $testResult | Out-File -FilePath $failureLogPath -Append -Encoding UTF8
    }
    Start-Sleep -Seconds 5
}
脚本说明
  • 参数替换:使用前请修改开头三个配置项的值为你的实际需求,端口请直接填写数字不需要加引号
  • 运行逻辑:脚本启动后会无限循环执行测试,每5秒执行一次,仅当端口连接失败时才会在控制台打印信息,同时将失败记录追加写入日志文件,不会覆盖历史记录,脚本也不会中断运行
  • 停止方式:如需终止脚本运行,直接在PowerShell窗口按下Ctrl + C即可
可选优化(按需使用)

如果你需要导出结构化的日志方便后续筛选统计,可以将日志写入部分替换为CSV格式导出:

# 替换原有日志写入代码即可
$testResult | Select-Object `
    @{Name='测试时间';Expression={Get-Date -Format 'yyyy-MM-dd HH:mm:ss'}},
    ComputerName,RemoteAddress,RemotePort,InterfaceAlias,SourceAddress,TcpTestSucceeded | 
    Export-Csv -Path $failureLogPath -Append -Encoding UTF8 -NoTypeInformation

内容的提问来源于stack exchange,提问作者Gary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:45:04