使用 PowerShell 检查网络可达性

AI摘要
Deepseek提供支持

在日常的系统管理和网络监控中,确认设备的网络可达性是一个常见且重要的任务。本文将详细解析一段使用 PowerShell 编写的脚本,该脚本用于检查一组机器是否可达,并将可达的机器列出。

PowerShell 脚本:

# 定义机器名数组
$machines = @(
    "PC-TEST01",
    "PC-TEST02"
)

# 定义域名后缀
$domainSuffix = "domain"

# 定义可达机器的数组
$reachableMachines = @()

# 遍历机器名数组并执行 ping
foreach ($machine in $machines) {
    $fullDomain = $machine + $domainSuffix
    Write-Host "Pinging $fullDomain..."
    try {
        # 执行 ping 命令
        $result = Test-Connection -ComputerName $fullDomain -Count 2 -ErrorAction Stop
        # 如果 ping 成功,输出结果并添加到可达机器数组
        Write-Host "$fullDomain is reachable."
        $reachableMachines += $fullDomain
    } catch {
        # 如果 ping 失败,输出错误信息
        Write-Host "$fullDomain is not reachable."
    }
}

# 输出可达机器列表
Write-Host "`nReachable Machines:"
$reachableMachines | ForEach-Object { Write-Host $_ }

1. 定义机器名数组

$machines = @(
    "PC-TEST01",
    "PC-TEST02"
)

这一部分定义了一个名为 $machines 的数组,包含了需要检查的机器名称。这里列出了两台机器:PC-TEST01PC-TEST02。可以根据实际需求,增加或者修改这个数组中的机器名。

广告
广告图片

2. 定义域名后缀

$domainSuffix = "domain"

$domainSuffix 变量用于定义这些机器的域名后缀。在实际应用中,这可以是一个有效的域名后缀,比如 .local.com,依赖于你的网络设置。

3. 定义可达机器的数组

$reachableMachines = @()

这里初始化了一个空数组 $reachableMachines,用于存放那些可以成功 ping 通的机器名称。

4. 遍历机器名数组并执行 ping

foreach ($machine in $machines) {
    $fullDomain = $machine + $domainSuffix
    Write-Host "Pinging $fullDomain..."
    try {
        $result = Test-Connection -ComputerName $fullDomain -Count 2 -ErrorAction Stop
        Write-Host "$fullDomain is reachable."
        $reachableMachines += $fullDomain
    } catch {
        Write-Host "$fullDomain is not reachable."
    }
}

这一部分是脚本的核心。它使用 foreach 循环遍历 $machines 数组中的每个机器名称。每次循环中:

  • 将机器名称与域名后缀组合,形成完整的域名 $fullDomain
  • 使用 Write-Host 输出正在 ping 的机器名。
  • 使用 Test-Connection 命令尝试 ping 该机器,-Count 2 表示发送两个 ping 请求,-ErrorAction Stop 选项确保在出现错误时停止执行。
  • 如果 ping 成功,机器名称将被添加到 $reachableMachines 数组中,并输出相应的可达性信息。
  • 如果 ping 失败,脚本会捕获异常,并输出该机器不可达的错误信息。

5. 输出可达机器列表

Write-Host "`nReachable Machines:"
$reachableMachines | ForEach-Object { Write-Host $_ }

最后,脚本输出一行文本 “Reachable Machines:”,并使用 ForEach-Object 遍历可达机器数组 $reachableMachines,逐一输出每个可达机器的名称。

这段 PowerShell 脚本通过简单的结构和命令,展示了如何有效地检查一组机器的网络可达性。它不仅适用于网络管理员排查网络故障,也可以作为学习 PowerShell 基础的一个良好示例。通过适当修改机器名称和域名后缀,用户可以根据自己的需求扩展该脚本的功能。

广告
广告图片
温馨提示 : 非特殊注明,否则均为©李联华的博客网原创文章,本站文章未经授权禁止任何形式转载;来自:俄亥俄州·哥伦布 ,欢迎您的访问!
文章链接:https://www.lilianhua.com/check-network-reachability-using-powershell.html
请先登录才能参与答题
距本场结束剩 00 00 00 00
轻量应用服务器 2核2G
200M峰值带宽,适用于网站搭建、Web应用、容器环境、电商独立站等
立即前往
扫码进入
扫描二维码购买
文澜千文

文澜千文

请登录以使用此功能。

和情(LOTUS)Biscoff比利时进口焦糖饼干节日送礼铁罐红色礼盒312G 和情(LOTUS)Biscoff比利时进口焦糖饼干节日送礼铁罐红色礼盒312G
Loading...
OpenClaw

OpenClaw 龙虾

AI AGENT GATEWAY
在您的服务器部署 OpenClaw,打造专属极速 AI 助手。
零门槛一键部署环境
支持 QQ/飞书/微信 渠道
跨平台指令分发执行
立即安装