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

如何修改定时检测端口的PowerShell脚本并判断TcpTestSucceeded状态

修改PowerShell端口检测脚本:添加结果判断与标准输出

以下是修改后的脚本,满足每10秒检测指定端口、判断连通状态并执行指定命令、同时输出到标准输出和文件的需求:

$output_file = 'C:\networktest-out.txt'
$port = 9392
$cloud_gate_name = '192.168.100.8'

while ($true) {
    # 捕获端口连通性检测结果
    $testResult = Test-NetConnection -ComputerName $cloud_gate_name -Port $port
    
    # 将检测结果输出到标准输出,同时追加到日志文件
    Write-Output $testResult
    $testResult >> $output_file
    
    # 记录当前检测的时间戳,同步输出到控制台和文件
    $currentDateTime = Get-Date -Format G
    Write-Output "===== 检测时间: $currentDateTime ====="
    Add-Content $output_file -Value "===== 检测时间: $currentDateTime ====="
    
    # 判断端口是否未连通,若未连通则执行指定命令
    if (-not $testResult.TcpTestSucceeded) {
        Write-Output "警告:端口 $port 未开放,执行指定操作..."
        # 替换为你需要执行的实际命令
        # someother command
    }
    
    Start-Sleep -Seconds 10
}

关键修改说明:

  • 捕获检测结果:用$testResult变量存储Test-NetConnection的返回对象,直接访问TcpTestSucceeded属性进行状态判断
  • 标准输出支持:通过Write-Output将检测结果和时间戳输出到控制台(标准输出),同时保留原有的文件追加逻辑
  • 时间戳同步:调整时间戳记录位置,让每个检测结果对应明确的时间标记,避免原脚本中时间与结果不匹配的问题
  • 状态判断优化:使用-not运算符判断端口未连通,这是PowerShell中更简洁直观的写法
  • 端口类型规范:将端口变量改为数字类型,符合Test-NetConnection参数的预期类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:06:54