我正在运行以下代码来运行perfmon
计数器,但无法在其Export-Counter -Path $DestinationFile -FileFormat csv
输出上运行Receive-Job
。
Start-Job -Name GettingCounters -ScriptBlock {
Get-Counter -Counter "\Processor(_total)\% Processor Time" -SampleInterval 1 -MaxSamples 120
}
$i = 0
$duration = 120
while ((Get-Job GettingCounters).State -eq 'Running') {
#increment
$i++
#Round the numbers up for a nice output and then Write-Progress
Write-Progress -Activity "Processing $user" -PercentComplete (($i/$duration)*100) -Status ("Gathering data...")
Start-Sleep -Seconds 1
}
答案 0 :(得分:1)
如何不使用'Export-Counter'而是'Export-Csv'
Start-Job -Name GettingCounters -ScriptBlock {
Get-Counter -Counter "\Processor(_total)\% Processor Time" -SampleInterval 1 -MaxSamples 3
}
while ((Get-Job GettingCounters).State -eq 'Running') {
Start-Sleep -Seconds 1
}
$job = Get-Job GettingCounters |Receive-Job
# better Format-Table?
$job |Select-Object PSComputerName, Timestamp, @{Label='Readings'; Expression={$_.Readings.trim()}} |Export-Csv -Path test
# lousy cleaning
Get-Job |Remove-Job
或者,如果您不必远程运行它,而不是使用作业?
使用远程“对象”对我来说似乎有点棘手
但是,反序列化的对象不是活动对象。这是一个快照 它被序列化时的对象,它包含属性 但没有方法。您可以在Windows PowerShell中使用和管理这些对象, 包括在管道中传递它们,显示选定的属性,以及 格式化它们。