1
作爲我的last question的後續工作,我想編譯一個perfmon計數器列表,它以1秒的時間間隔(默認值)生成並連續採樣(默認值爲-Continuous
),睡眠持續60秒,然後運行Receive-job
以獲得過去60秒的統計數據(-Average, -Sum, -Minimum, -Maximum
)。從數組中獲取計數器路徑的開始作業
現在我遇到的問題是,當我使用絕對計數器路徑時,作業開始並處於「正在運行」狀態。如果我嘗試循環訪問性能計數器字符串數組,則作業狀態將變爲「已完成」。
以下是兩個代碼示例,顯示非工作和工作結果。
不起作用。工作狀態即使設置了「連續」,也會完成。沒有錯誤發生。
[email protected]{}
[email protected]("\Processor(*)\% Processor Time",
"\Network Interface(*)\Bytes Received/sec",
"\Network Interface(*)\Bytes Sent/sec")
foreach ($counterPath in $counters) {
$job=Start-Job {get-counter -Counter "$counterPath" -Continuous | foreach {$_.CounterSamples} }
$jobs[$job.id]=$counterPath
}
正常工作,但不允許多個櫃檯,通過循環開始作業。
[email protected]{}
$job=Start-Job {get-counter -Counter "\Processor(*)\% Processor Time" -Continuous | foreach {$_.CounterSamples} }
$jobs[$job.id]=$counter
結果輸出
PS C:\Users\msnow> [email protected]{}
[string]$counter="\Processor(*)\% Processor Time"
$job=Start-Job {get-counter -Counter "$counter" -Continuous | foreach {$_.CounterSamples} }
$jobs[$job.id]=$counter
__________________________________________________________________________________________________________________________
PS C:\Users\msnow> [email protected]{}
$job=Start-Job {get-counter -Counter "\Processor(*)\% Processor Time" -Continuous | foreach {$_.CounterSamples} }
$jobs[$job.id]=$counter
__________________________________________________________________________________________________________________________
PS C:\Users\msnow> Get-Job
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 Job1 Completed True localhost get-counter -Counter "...
3 Job3 Running True localhost get-counter -Counter "...
__________________________________________________________________________________________________________________________
PS C:\Users\msnow> receive-job -id 3 | measure CookedValue -sum -Average
Count : 11466
Average : 5.20268509822716
Sum : 59653.9873362726
Maximum :
Minimum :
Property : CookedValue
那麼這肯定不明顯。 :)它不會出現'「$()」'包裝的$ args [0]是必需的。我*應該在腳本塊中包含這個原因嗎? – mattsn0w 2012-08-15 19:24:24
在這種情況下,不,這是我的習慣。但是,如果俞想了解這些差異,請參閱http://huddledmasses.org/parenthesis-in-powershell/ – 2012-08-15 21:12:46