2014-05-08 44 views
0

如果我们在端口1055上有一个网页,则会安装perfstat。它会用一个yes或no来更新数据表。非常奇怪如果其他结果

这是奇怪的事情。 - 两台计算机.. Computer1 perfstat和Computer2不 - 如果我先将Computer2放入txt文件中,结果出来正确。假和真 -
- 如果我先将Computer1放在txt文件中,那么两台机器都会显示为true! :(

我有事情搞砸了与if语句。一旦它进入中频部分,结果是不正确的。

这里是我的代码

$Computers = Get-Content -Path C:\temp\servers.txt 


foreach ($Server in $computers) 
{ 

    $reply = Invoke-WebRequest http://$Server":1055" | Select-Object Content 

    if ($reply.Content -like "*Windows PerfStat v1.1.4*") 
    { 
     $Sheet1.Cells.Item($intRow, 1) = $server 
     $Sheet1.Cells.Item($intRow, 2) = "Yes" 
    } 
    else 
    { 
     $Sheet1.Cells.Item($intRow, 1) = $server 
     $Sheet1.Cells.Item($intRow, 2) = "No" 
    } 
    $intRow = $intRow + 1 
} 

回答

2

的问题是,计算机2未发送结果反馈到$回复因此,如果计算机1运行第一$回复仍然在计算机2上运行相同的值添加remove-variable reply$reply =前行:。

foreach ($Server in $computers) { 
if($reply){remove-variable reply} 
$reply = Invoke-WebRequest http://$Server":1055" | Select-Object Content 
+0

究竟是什么,我想,但下载PowerShell 4.0来检查,仍然坚持2.0由于某种原因:) – ManyRootsofAllEvil

+0

你又达人了。感谢TMT! – NobleMan