簡體   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