使用 PowerShell 检查网络可达性
在日常的系统管理和网络监控中,确认设备的网络可达性是一个常见且重要的任务。本文将详细解析一段使用 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-TEST01 和 PC-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
English (US)
Español (ES)
Português (PT)
Français (CA)
Español (MX)
Español (VE)
Español (CO)
Español (AR)
Português (BR)
Quechua (PE)
Guaraní (PY)
简体中文 (ZH)
繁體中文 (HK)
日本語 (JP)
한국어 (KR)
हिन्दी (HI)
Pilipino (PH)
ไทย (TH)
Tiếng Việt (VN)
Bahasa Melayu (MY)
Bahasa Indonesia (ID)
বাংলা (BD)
اردو (PK)
සිංහල (LK)
ភាសាខ្មែរ (KH)
English (UK)
Français (FR)
Deutsch (DE)
Italiano (IT)
Русский (RU)
Nederlands (NL)
Türkçe (TR)
Polski (PL)
Svenska (SE)
Norsk (NO)
Dansk (DK)
Suomi (FI)
Ελληνικά (GR)
Čeština (CZ)
Magyar (HU)
Română (RO)
Български (BG)
Српски (RS)
Українська (UA)


