循环丢失头中的写输出

时间:2014-11-05 03:11:27

标签: powershell

对PowerShell来说很新,只是在这里玩一些代码但遇到了一些我无法找到答案的东西。我有一个函数,它获取包含服务器名称和服务名称的$ serverList,并返回具有每个服务状态的输出。我有一个循环运行每隔几秒钟,但只有第一次运行的函数包含列牧师,之后我只获取数据,没有标题。这是什么交易!

Function ServiceStatus()
{
    $objOutput = @()
    foreach ($objRecord in $serverList)
    {
        $obj = New-Object System.Object
        $serviceStatus = get-service -ComputerName $objRecord.Server -Name $objRecord.Service
        $obj | Add-Member -membertype NoteProperty -name Server -value $objRecord.Server
        $obj | Add-Member -membertype NoteProperty -name Service -value $objRecord.Service
        $obj | Add-Member -membertype NoteProperty -name Status -value $serviceStatus.status
        Write-Output $obj
    }    
}

For(;;)
{
    $currentDate = Get-Date
    clear-host
    Write-Host Service Checked: $currentDate
    ServiceStatus
    Start-Sleep -Milliseconds 5000
}

1 个答案:

答案 0 :(得分:2)

循环时,默认行为是仅附加没有标题的数据。

PS:> while (1) { Start-Sleep 1; get-process powershell}

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    487      34   100608     107400   636     8.07   4916 powershell
    450      34   100632     107824   636     8.08   4916 powershell
    450      34   100632     107872   636     8.08   4916 powershell
    452      34   100948     108188   636     8.08   4916 powershell
    450      34   101264     108504   636     8.08   4916 powershell

如果需要标题,请指定格式。

PS:> while (1) { Start-Sleep 1; get-process powershell|ft}

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    512      34   102592     106756   636     8.16   4916 powershell

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    463      34   103164     107340   636     8.17   4916 powershell