我有一个我想改进的基本脚本,所以它会关闭并收集性能计数器作为作业,而不是我目前正在做的事情(集中检索计数器)。
问题是,当我在 Powershell 的作业中运行 Get-Counter 时,无法正确检查/使用返回的数据。我认为这是因为它序列化了数据。
这是我的脚本,非常基本:
Start-Job -ScriptBlock {$Counter = Get-Counter "\LogicalDisk(C:)\% Free Space" -MaxSamples 1 -SampleInterval 1 ; return $Counter}
do
{
[array]$JobCount = Get-Job -State "Completed"
$JobResults = Get-Job | Receive-Job
if ($JobCount.Count -gt 0)
{
Write-Host "Job Completed"
}
else
{
Write-Host "Sleeping 1 Second..."
Start-Sleep 1
}
}
while ($JobCount.Count -lt 0)
$JobResults.CounterSamples
$JobResults.CounterSamples 返回一个字符串,上面写着“Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSample”。那是计数器对象的数据类型。
如果我在工作之外运行它,它返回就好了:
$Counter = Get-Counter "\LogicalDisk(C:)\% Free Space" -MaxSamples 1 -SampleInterval 1
$Counter.CounterSamples
有人知道我如何正确使用作业结果中的数据吗?
仍然没有我正在寻找的答案,有什么想法吗?