用于ping的Powershell脚本

时间:2018-10-30 21:51:37

标签: powershell ping

我有网络上的服务器和NAS设备的列表。所有列出的都是带有NAS_List(B列)和Server_List(A列)标头的csv文件。我想使用A列对B列执行ping操作。

Server_List           NAS_List
Server12345 pings    NAS12345
Server23456 pings    NAS23456
Server34567 pings    NAS34567

我也想以txt / csv格式将其输出到将来。希望我有道理:)

谢谢 巴文

1 个答案:

答案 0 :(得分:0)

您可以使用Import-Csv在数组对象中序列化CSV数据。之后,您可以通过ForEach-Object-cmdlet遍历该数组。在循环中,您可以调用Test-Connection来“ ping”给定的服务器。

我已经在github上上传了一个简单的函数。

function Ping-Servers{
    [CmdletBinding()]
    Param()
    # Load CSV data to local object
    $servers = Import-Csv .\servers.csv

    $testResultArrayWithDictionaryAsContent = $servers | Foreach-Object{ 
            #Iterate over the CSV rows
            Write-Information "Testing $($_.Servers)"
            #Call "ping" and store the result
            $ctResult = Test-Connection $_.Servers; 
            # return a dictionary for every CSV row (including the ping result)
            @{ Nas = $_.Nas; Server = $_.Servers; TestResult = $ctResult }}
    $testResultArrayWithDictionaryAsContent 
}

检查Powershell about sections,它们提供了很酷的信息。如果您不熟悉Powershell,则应该免费参加MVA Getting Started with Powershell课程。尽管本课程将介绍Powershell 3.0,但它是Powershell世界中的绝佳切入点。

相关问题