TGViewer
NetworkAdmin.ru NetworkAdmin.ru @networkadminru · 4.7K subscribers
Post #378 2.17K
👁 Удаленный мониторинг компьютеров в сети через PowerShell

PowerShell позволяет удалённо мониторить компьютеры в сети без необходимости физического доступа. С его помощью можно собирать информацию о загруженности процессора, оперативной памяти, состоянии дисков, работающих процессах и многом другом.

1️⃣ Проверка доступности компьютера в сети. Перед началом работы проверяем, онлайн ли машина:


Test-Connection -ComputerName PC-001 -Count 2


Аналог ping, но с возможностью использования в скриптах. Если нужно проверить группу компьютеров:


$computers = @("PC-001", "PC-002", "PC-003")
$computers | ForEach-Object { Test-Connection -ComputerName $_ -Count 1 -Quiet }


Вернёт $true/$false для каждого устройства.

2️⃣ Мониторинг загрузки процессора и памяти. Получить текущую нагрузку процессора на удалённом ПК можно так:


Get-WmiObject Win32_Processor -ComputerName PC-001 | Select-Object LoadPercentage


Для оперативной памяти:


Get-WmiObject Win32_OperatingSystem -ComputerName PC-001 |
Select-Object TotalVisibleMemorySize, FreePhysicalMemory


Вернёт общий объём RAM и количество свободной памяти.

3️⃣ Проверка состояния дисков.


Get-WmiObject Win32_LogicalDisk -ComputerName PC-001 -Filter "DriveType=3" |
Select-Object DeviceID, VolumeName, @{Name="FreeSpace(GB)";Expression={$_.FreeSpace/1GB -as [int]}}


Покажет свободное место в ГБ для каждого логического диска.

4️⃣ Просмотр работающих процессов. Для диагностики зависаний можно посмотреть, какие процессы загружают систему:


Get-Process -ComputerName PC-001 | Sort-Object CPU -Descending | Select-Object -First 10


Топ-10 процессов по загрузке CPU.

Завершить зависший процесс на удалённом ПК:


Invoke-Command -ComputerName PC-001 -ScriptBlock { Stop-Process -Name notepad -Force }


5️⃣ Мониторинг логов событий. Анализ логов поможет выявить ошибки и подозрительные события:


Get-WinEvent -LogName System -ComputerName PC-001 | Select-Object -First 10


Выведет 10 последних событий из журнала System.

Фильтрация только ошибок (Critical, Error, Warning):


Get-WinEvent -LogName System -ComputerName PC-001 |
Where-Object { $_.Level -le 3 } | Select-Object TimeCreated, Id, Message -First 10


6️⃣ Запуск команд на удалённых машинах. Если надо выполнить PowerShell-команду на нескольких ПК сразу:


Invoke-Command -ComputerName PC-001,PC-002 -ScriptBlock { Get-Service | Where-Object {$_.Status -eq 'Stopped'} }


Выведет список остановленных сервисов.

7️⃣ Мониторинг в реальном времени.


while ($true) {
Get-WmiObject Win32_Processor -ComputerName PC-001 | Select-Object LoadPercentage
Start-Sleep -Seconds 5
}


Будет обновлять данные каждые 5 секунд.

#windows #monitoring

🧑‍💻 NetworkAdmin
  • 👍 17
More from @networkadminru
  1. Oct 1, 2026✨ Systemd-команды, которые быстро дают информацию о системе У systemd есть несколько коман…
  2. Sep 30, 2026🖥 Get-ADUser: полезные примеры для работы с пользователями Active Directory Get-ADUser -…
  3. Sep 29, 2026🥱 Как быстро разобраться с дисками и маунтами Когда на сервере несколько дисков, LVM, отд…
  4. Sep 28, 2026🔎 TCP keepalive: как находить мертвые соединения до того, как они создадут проблему Иногд…
  5. Sep 25, 2026🤩 Как расшифровать код ошибки Windows через certutil При установке обновлений Windows ран…
  6. Sep 23, 2026💻 Как жестко перезагрузить linux, когда обычный reboot уже не помогает Иногда сервер зави…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →