Сценарий использования ЦП

Я также пытаюсь получить использование памяти с помощью сценария, упомянутого ниже (Опубликовано по этой ссылке -

$Output = 'C:\temp\Result.txt'
$ServerList = Get-Content 'C:\temp\Serverlist.txt'
$ScriptBLock = {  
$CPUPercent = @{
Label = 'CPUUsed'
Expression = {
$SecsUsed = (New-Timespan -Start $_.StartTime).TotalSeconds
[Math]::Round($_.CPU * 10 / $SecsUsed)

$MemUsage = @{
Label1 ='RAM(MB)' 
Expression = {$_.WS / 1MB}
}
      }
}  
Get-Process | Select-Object -Property Name, CPU, $CPUPercent, $MemUsage,
 Description | 
Sort-Object -Property CPUUsed -Descending | 
Select-Object -First 15  | Format-Table -AutoSize
}
foreach ($ServerNames in $ServerList) {
 Invoke-Command -ScriptBlock $ScriptBLock -ComputerName $ServerNames | 
Out-File $Output -Append
}

Я получаю ошибку

Значение параметра было нулевым; ожидался один из следующих типов: {System.String, System.Management.Automation.ScriptBlock}. + CategoryInfo: InvalidArgument: (:) [Select-Object], NotSupportedException + FullyQualifiedErrorId: DictionaryKeyUnknownType, Microsoft.PowerShell.Commands.SelectObjectCommand + PSComputerName: Server1

Не могли бы вы сообщить мне, что я должен исправить?


person V T    schedule 26.08.2016    source источник


Ответы (1)


У вас было несколько неуместных закорючек. Вот фиксированный код:

$Output = 'C:\temp\Result.txt'
$ServerList = Get-Content 'C:\temp\Serverlist.txt'
$ScriptBLock = {  
  $CPUPercent = @{
    Label = 'CPUUsed'
    Expression = {
      $SecsUsed = (New-Timespan -Start $_.StartTime).TotalSeconds
      [Math]::Round($_.CPU * 10 / $SecsUsed)
    }
  }
  $MemUsage = @{
    Label1 ='RAM(MB)' 
    Expression = {$_.WS / 1MB}
  }


  Get-Process | Select-Object -Property Name, CPU, $CPUPercent, $MemUsage,
  Description | 
  Sort-Object -Property CPUUsed -Descending | 
  Select-Object -First 15  | Format-Table -AutoSize
}
foreach ($ServerNames in $ServerList) {
  Invoke-Command -ScriptBlock $ScriptBLock -ComputerName $ServerNames | 
  Out-File $Output -Append
}
person restless1987    schedule 26.08.2016
comment
По-прежнему возникает та же ошибка - ключ Label1 недействителен. + CategoryInfo: InvalidArgument: (:) [Select-Object], NotSupportedException + FullyQualifiedErrorId: DictionaryKeyIllegal, Microsoft.PowerShell.Commands.SelectObjectCommand + PSComputerName: Server1 - person V T; 26.08.2016