我有网络上的服务器和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格式将其输出到将来。希望我有道理:)
谢谢 巴文
答案 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世界中的绝佳切入点。