Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 为一个gridview输出运行多个测试连接_Powershell_Ping_Out Gridview - Fatal编程技术网

Powershell 为一个gridview输出运行多个测试连接

Powershell 为一个gridview输出运行多个测试连接,powershell,ping,out-gridview,Powershell,Ping,Out Gridview,如何使用多个测试连接cmdlet并将它们全部放在一个Out GridView中,或者是否有其他解决方案来解决我在这里尝试的问题? 关键是能够一个接一个地ping多个地址,并使其全部显示在同一窗口中。您可以使用以下命令: $tests= Test-Connection -ComputerName $env:COMPUTERNAME $tests+= Test-Connection -ComputerName $env:COMPUTERNAME $tests| Out-GridView 您可以使

如何使用多个
测试连接
cmdlet并将它们全部放在一个
Out GridView
中,或者是否有其他解决方案来解决我在这里尝试的问题?
关键是能够一个接一个地ping多个地址,并使其全部显示在同一窗口中。

您可以使用以下命令:

$tests=  Test-Connection -ComputerName $env:COMPUTERNAME
$tests+= Test-Connection -ComputerName $env:COMPUTERNAME
$tests| Out-GridView

您可以使用以下命令:

$tests=  Test-Connection -ComputerName $env:COMPUTERNAME
$tests+= Test-Connection -ComputerName $env:COMPUTERNAME
$tests| Out-GridView

将IP地址(或主机名)列表输入每个地址的
ForEach对象
循环运行
测试连接
,然后将结果导入
输出网格视图

$addr = '192.168.1.13', '192.168.23.42', ...
$addr | ForEach-Object {
  Test-Connection $_
} | Out-GridView
请注意,这可能非常耗时,具体取决于要检查的地址数,因为所有地址都是按顺序检查的

如果需要加快处理大量地址的速度,例如,可以并行运行检查:


但是,过多的并行可能会耗尽系统资源。根据您要检查的地址数量,您可能需要在顺序运行和并行运行之间找到一些中间地带,例如使用。

将您的IP地址(或主机名)列表馈送到每个对象的
循环中,为每个地址运行
测试连接,然后将结果导入
Out GridView

$addr = '192.168.1.13', '192.168.23.42', ...
$addr | ForEach-Object {
  Test-Connection $_
} | Out-GridView
请注意,这可能非常耗时,具体取决于要检查的地址数,因为所有地址都是按顺序检查的

如果需要加快处理大量地址的速度,例如,可以并行运行检查:


但是,过多的并行可能会耗尽系统资源。根据您要检查的地址数量,您可能需要在顺序运行和并行运行之间找到一些中间点,例如使用。

测试连接。
可以获取一组计算机名称或地址并ping它们。它将为每台计算机上的每个ping返回一行,但您可以使用
-Count
参数将其限制为1 ping。您还可以使用
-AsJob
将命令作为后台作业运行

$names = server1,server2,serverN
Test-Connection -ComputerName $names -Count 1 -AsJob | Wait-Job | Receive-Job
您将返回显示为的Win32_PingStatus对象列表

Source        Destination     IPV4Address      IPV6Address     Bytes    Time(ms) 
------        -----------     -----------      -----------     -----    -------- 

如果时间列(ResponseTime属性)为空,则没有ping replay,服务器处于脱机状态。你可以在这上面过滤

测试连接
可以获取一组计算机名称或地址并ping它们。它将为每台计算机上的每个ping返回一行,但您可以使用
-Count
参数将其限制为1 ping。您还可以使用
-AsJob
将命令作为后台作业运行

$names = server1,server2,serverN
Test-Connection -ComputerName $names -Count 1 -AsJob | Wait-Job | Receive-Job
您将返回显示为的Win32_PingStatus对象列表

Source        Destination     IPV4Address      IPV6Address     Bytes    Time(ms) 
------        -----------     -----------      -----------     -----    -------- 

如果时间列(ResponseTime属性)为空,则没有ping replay,服务器处于脱机状态。你可以在这上面过滤

@ThomErnst:你的wellcome@ThomErnst当前位置您的好这一个很好,它使编写脚本变得更小,非常感谢!这是一个很好的,它使编写脚本更小,非常感谢!