首页 > 解决方案 > 如何编写多个结果以在 Powershell 中弹出

问题描述

我正在尝试找到一种方法,使用 powershell 将网络 ping 测试的结果写入弹出窗口。我找到了一种一次写一个结果的方法,但这没有帮助。我正在从 xml 文件中读取计算机名称和 IP 以获取要 ping 的地址。我的代码是:

foreach($Computer in $Name.HostSystem){
if(test-connection  $Computer.IPAddress -Count2 - Quiet){
Write-Host $Computer.name :   $Computer.IPAddress "is receiving"
}else{
Write-Host $Computer.name : $Computer.IPAddress "is NOT receiving"
continue
}
}

我想要的是在代码完成后弹出一个窗口,告诉我哪些计算机收到了哪些计算机没有收到,如果可能的话,只需一个 OK 按钮进行确认。我一次要 ping 5 到 20 台计算机,因此每个结果的弹出窗口都太耗时了。

标签: powershell

解决方案


要一次显示所有结果,只需将它们分配给单个变量:

$Output = ForEach($Computer in $Name.HostSystem) {
    If(test-connection  $Computer.IPAddress -Count 2 -Quiet) {
        $Result = "Receiving"
    }
    Else{
        $Result = "Not Receiving"
    }
    [pscustomobject]@{Computer = $Computer;IPAddress = $Computer.IPAddress;Result = $Result}
}

你的意思是一个GUI弹出框?如果是这样,那么最简单的方法是将结果发送到 gridview:

$output | Out-Gridview

推荐阅读