2014-11-05 68 views
0

很新的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

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

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