繁体   English   中英

Powershell 用于 ping 服务器的脚本

[英]Powershell script for pinging servers

我想为 ping 服务器编写一个 powershell 脚本。 该脚本将调用包含要 ping 的服务器列表的 .ini 文件。

你能告诉我怎么做吗?

如果它只是服务器 ip 地址的列表,那么以下将起作用。

Get-Content "c:\testvalues.ini" | foreach { Test-Connection $_ }

这在 powershell 5 中运行良好,可以并行 ping:

$list = get-content list.ini
test-connection $list -AsJob -count 1 | Receive-Job -Wait -AutoRemoveJob

如果计算机出现故障,则 header“时间(毫秒)”下的列将为空,或者 ResponseTime 属性将为 $null。

我准备了一个小的 PowerShell 脚本,这将有助于通过 tcp ping ping windows/Linux 主机。

在这个脚本中,我使用 windows 桌面的 TCP 端口 22 ping Linux 主机。

您可以根据自己的方便在脚本本身中修改端口号。

例如:

Linux = 端口 22 (SSH TCP)

.\paping.exe $line -p 22 -c 1

Windows = 端口 3389 (RDP TCP)

.\paping.exe $line -p 3389 -c 1

步骤 1:从下面的 URL 下载“ paping ”网络实用程序。

https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/paping/paping_1.5.5_x86_windows.zip

第 2 步:将下载的 zip 文件提取到您的桌面。

第 3 步:创建一个文本文件名为“ips.txt”,并存储到桌面的“paping_1.5.5_x86_windows”文件夹下。

第 4 步:复制以下脚本并保存到 PowerShell 名称为“tcpping.ps1”

Clear-Host
Clear-Content .\success.log -Force -ErrorAction SilentlyContinue
Clear-Content .\failure.log -Force -ErrorAction SilentlyContinue 
foreach($line in Get-Content .\ips.txt) 

{
.\paping.exe $line -p 22 -c 1
if ( $? -eq $True )

{
   $currentTime = Get-Date -Format “MM/dd/yyyy HH:mm K”
    Write-Host $currentTime Node $line is up
    
    "$(Get-Date -DisplayHint datetime) Node $line is up" | Tee-Object -FilePath "success.log" -Append

}

else
{
$currentTime = Get-Date -Format “MM/dd/yyyy HH:mm K”
 Write-Host $currentTime Node $line is down
 "$(Get-Date -DisplayHint datetime) Node $line is down" | Tee-Object -FilePath "failure.log" -Append

 }

}

第 5 步:右键单击 PowerShell 脚本并使用 PowerShell 运行。

第六步:可以在同一个文件夹的日志文件中查看tcp ping成功和失败结果。

第 7 步:下面是示例 ping 测试结果脚本 output 供您参考

07/18/2021 23:27:45 Node 192.168.0.10 is up
07/18/2021 23:27:47 Node 192.168.0.11 is down

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM