Скрипт для мониторинга нагрузки на оперативную память удалённого хоста. Был написан и применялся для опроса виртуального сервера на предмет необходимости повышения ресурсов системы.
Сразу после запуска скрипт спрашивает имя удалённого хоста, подключается к нему и возвращает в консоль текущие дату-время, общий объем ОЗУ и её свободный ресурс. Само собой эти данные пишутся в текстовый файл, который будет создан рядом со скриптом.
Опрос осуществляется с помощью wmi и ответ удалённая система даст мгновенно, даже при условии практически полной загруженности ресурса оперативной памяти.
[System.Console]::Title = "Потребление оперативной памяти удалённым хостом"
$servername = Read-Host "Имя удалённого хоста"
[System.Console]::Title = "Потребление оперативной памяти $servername"
$logfile = "$servername-ramlog.txt"
clear
try { $test=Get-WmiObject -ComputerName $servername Win32_OperatingSystem -ErrorAction Ignore }
catch { $test=$null }
if($test -ne $null)
{
while($true)
{
$datetime = Get-Date -format "dd-MM-yyyy HH:mm:ss"
$total = Get-WmiObject -ComputerName $servername Win32_OperatingSystem | select -ExpandProperty TotalVisibleMemorySize
$free = Get-WmiObject -ComputerName $servername Win32_OperatingSystem | select -ExpandProperty FreePhysicalMemory
$totalgb = [math]::round($total/1MB,0)
$freegb = [math]::round($free/1MB,1)
$outdata = "$datetime | Всего: $totalgb Гб | Свободно: $freegb Гб"
$outdata | Out-File -FilePath $logfile -Append
Write-Host "$outdata" -ForegroundColor Cyan
Sleep(5)
}
}
else { Write-Host "Ошибка доступа к $servername" -ForegroundColor Red; Read-Host }
Обратите внимание на команду Sleep(5), которая отправляет цикл в сон на пять секунд. Можете установить любое приемлемое для ваших целей значение.