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

Привет, я снова запускаю этот скрипт на нескольких серверах (изначально опубликовано здесь), и я хотел бы чтобы в результате отображались имена каждого конкретного сервера. Но прямо сейчас я могу получить заголовок CPU & Memory Usage, а затем использование каждого сервера один за другим. Пожалуйста, дайте мне знать, как получить имя каждого сервера и результат.

$Output = 'C:\temp\Result.txt'
$ServerList = Get-Content 'C:\temp\ServerNames.txt'

$ScriptBLock = { 
 $CPUPercent = @{



Label = 'CPUUsed'
Expression = {
  $SecsUsed = (New-Timespan -Start $_.StartTime).TotalSeconds
  [Math]::Round($_.CPU * 10 / $SecsUsed)
}
 }


$MemUsage = @{
Label ='RAM(MB)' 
Expression = {
[Math]::Round(($_.WS / 1MB),2)
}
  }
 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 -ComputerName $ServerNames {Write-Output "CPU & Memory Usage"} 
| Out-File $Output -Append
Invoke-Command -ScriptBlock $ScriptBLock -ComputerName $ServerNames | 
Out-File $Output -Append

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


Ответы (1)


Я вижу, что вы используете цикл с именами серверов ($ServerNames — это каждый сервер для каждой итерации), так почему бы вам не использовать:

"Working on $ServerNames.." | Out-File $Output -Append

в первой строке после оператора foreach?

В любом случае, я думаю, вы можете изменить свой сценарий следующим образом: В блоке сценария добавьте:

Write-Output "CPU & Memory Usage"
hostname | out-file $output -Append # this will throw the server name

Если у вас есть это в Scriptblock, вы можете запустить его следующим образом:

Invoke-Command -ScriptBlock $ScriptBLock -ComputerName $ServerList

($ServerList - это исходный массив серверов, с которым "Invoke-Command" умеет обращаться).

person Amir Saar    schedule 27.08.2016
comment
Спасибо, Амир... это сработало Работа над $ServerNames.. | Выходной файл $Output -Append - person V T; 28.08.2016