Powershell测试连接:运行AsJob vs直接上升时的结果不同

时间:2012-06-19 11:43:05

标签: powershell ping jobs

简短版:为什么Test-Connection在运行-AsJob时仅提供一个结果?


详细版本:

在Powershell中运行Test-Connection(ping!)命令(以管理员身份运行)时,它使用4参数的默认值Count。这给了我预期的结果(为清楚起见,删除了一些不相关的数据):

PS C:\Windows\system32> Test-Connection www.stackoverflow.com

Destination     IPV4Address      IPV6Address   Bytes    Time(ms) 
-----------     -----------      -----------   -----    -------- 
www.stackove... 64.34.119.12     {}            32       117      
www.stackove... 64.34.119.12     {}            32       113      
www.stackove... 64.34.119.12     {}            32       111      
www.stackove... 64.34.119.12     {}            32       113     

然而,当我使用-AsJob标志运行它时,似乎(在等待几秒后运行Receive-Job时)Count只有1,但我预计它会是4并获得与上述类似的结果。相反,我得到了这个:

PS C:\Windows\system32> Test-Connection www.stackoverflow.com -AsJob

Id         Name            State      HasMoreData     Location     Command        
--         ----            -----      -----------     --------     -------        
1          Job1            Running    False           .            Test-Connection

PS C:\Windows\system32> Receive-Job 1

Destination     IPV4Address      IPV6Address   Bytes    Time(ms) 
-----------     -----------      -----------   -----    -------- 
www.stackove... 64.34.119.12     {}            32       113  

即使您为AsJob 提供了特定值,Count变体始终也会返回行。

我的Google-fu和Get-Help-fu似乎不够。有人可以解释这里发生了什么,最好有一些指示我自己如何以及在哪里找到这些信息(例如哪些帮助文件或来源解释了这种行为)?

1 个答案:

答案 0 :(得分:3)

可能是个错误。在v3中,你可以获得4次ping。