PowerShell nie je len nástroj na správu sieťových profilov – poskytuje výkonné možnosti monitorovania hardvéru, od diskov po teplotu CPU a GPU. Tento článok ti ukáže praktické aj menej známe príkazy na kontrolu zdravia komponentov a automatizáciu reportov. Pri každom príkaze nájdeš informáciu, či je potrebné spustiť ho ako administrátor a ktoré časti môžeš prispôsobiť podľa svojho systému. Výhodou je, že všetko zvládneš z jedného rozhrania bez potreby ďalších aplikácií.
PowerShell ti umožní získať podrobné technické dáta v reálnom čase a pripraviť výstupy pre ďalšie spracovanie. Pomocou jednoduchých skriptov môžeš automaticky sledovať kritické hodnoty a zasielať upozornenia. V článku nájdeš konkrétne ukážky aj odporúčané prístupy. Tento návod je vhodný pre IT administrátorov aj pokročilých používateľov, ktorí chcú získať maximum z vlastného hardvéru.
? 1. Disky: S.M.A.R.T., stav a výkonnostné metriky
? Základné informácie o diskoch (bez admin práv)
|
1 |
Get-Disk | Select-Object FriendlyName, HealthStatus, OperationalStatus |
? S.M.A.R.T. a technické detaily (vyžaduje admin práva)
|
1 2 |
Get-StorageReliabilityCounter -DiskNumber 0 | Select-Object Temperature, ReadErrorsCorrected, Wear, PowerOnHours |
-DiskNumber 0 číslom disku podľa výpisu z Get-Disk.
- Temperature – aktuálna teplota v °C
- ReadErrorsCorrected – počet opravených chýb čítania
- PowerOnHours – počet hodín v prevádzke
- Wear – opotrebenie SSD (0 = nový, 100 = kritický stav)
⚙️ Výkonnostné metriky (IOPS, prenos dát) (bez admin práv)
|
1 |
Get-Counter -Counter "\PhysicalDisk(*)\Disk Bytes/sec" -SampleInterval 2 -MaxSamples 3 |
? 2. CPU a RAM: Využitie systémových zdrojov
? Záťaž procesora v reálnom čase (bez admin práv)
|
1 |
Get-Counter -Counter "\Processor(_Total)\% Processor Time" -Continuous |
? Detailné štatistiky podľa jadier (bez admin práv)
|
1 2 3 |
Get-CimInstance -ClassName Win32_PerfFormattedData_Counters_ProcessorInformation | Where-Object {$_.Name -like "*_Total"} | Select-Object PercentProcessorTime |
? Monitoring RAM podľa relácií (vyžaduje admin práva)
|
1 2 3 4 5 6 7 8 9 10 |
$sessions = query session $sessions | ForEach-Object { $sessionId = ($_ -split '\s+')[2] $processes = Get-Process | Where-Object {$_.SessionId -eq $sessionId} $totalRAM = ($processes.WorkingSet64 | Measure-Object -Sum).Sum / 1MB [PSCustomObject]@{ SessionID = $sessionId MemoryMB = [math]::Round($totalRAM, 2) } } |
?️ 3. Teplota: CPU a GPU senzory
? Meranie teploty CPU (vyžaduje admin práva – nemusí fungovať všade)
|
1 2 |
$temp = (Get-CimInstance -Namespace "root/wmi" -ClassName MSAcpi_ThermalZoneTemperature).CurrentTemperature [math]::Round(($temp / 10 - 273.15), 2) |
?️ Zistenie údajov o GPU (bez admin práv – obmedzené info)
|
1 2 |
Get-CimInstance -Namespace "root/CIMV2" -Query "SELECT * FROM Win32_VideoController" | Select-Object Name, AdapterRAM, @{n='Temperature';e={$_.ConfigManagerErrorCode}} |
nvidia-smi alebo radeon-profile.
? 4. Automatizácia: Reporty a upozornenia
? E-mailový alert pri probléme s diskom (vyžaduje admin práva)
|
1 2 3 4 |
$disks = Get-StorageReliabilityCounter | Where-Object {$_.Wear -gt 80 -or $_.Temperature -gt 50} if ($disks) { Send-MailMessage -To "admin@firma.sk" -Subject "ALERT: Disk problémy" -Body ($disks | Out-String) } |
? Vizuálny HTML report pre manažment (bez admin práv)
|
1 2 3 4 5 6 7 8 9 10 11 12 |
$style = "<style>td {padding: 5px; border: 1px solid #ccc;}</style>" $cpu = Get-Counter -Counter "\Processor(_Total)\% Processor Time" | Select-Object -ExpandProperty CounterSamples $report = @" <h3>Hardvérový report - $(Get-Date)</h3> <table> <tr><th>Parameter</th><th>Hodnota</th></tr> <tr><td>CPU</td><td>$($cpu.CookedValue)%</td></tr> <tr><td>RAM</td><td>$( (Get-CimInstance Win32_OperatingSystem).FreePhysicalMemory / 1MB ) GB voľné</td></tr> </table> "@ $report = $style + $report $report | Out-File "C:\Reports\HW_Report.html" |
C:\Reports\ existuje alebo uprav cestu podľa potreby.
? 5. Menej známe, ale užitočné príkazy
? Diagnostika IO subsystému (bez admin práv)
|
1 |
Get-DiskStorageNodeView | Format-Table -Property Name, Iops, Latency |
? Štatistika sieťového adaptéra (bez admin práv)
|
1 |
Get-NetAdapterStatistics | Select-Object Name, ReceivedBytes, SentBytes |
? Záver: Sleduj, vyhodnocuj, automatizuj
PowerShell poskytuje silný nástrojový balík na sledovanie hardvérového zdravia – od jednoduchých výpisov až po pokročilú diagnostiku a automatizované výstupy. Vďaka jeho sile môžeš nahradiť mnohé platené monitorovacie nástroje vlastnými skriptami. Hardvér už nemusíš kontrolovať výhradne cez externé aplikácie – PowerShell ti dáva možnosť robiť to priamo a spoľahlivo.
V prostredí podnikovej infraštruktúry je dôležité mať presné údaje o hardvéri v reálnom čase. A práve tu sa PowerShell stáva výborným pomocníkom, ktorého flexibilita prekvapí aj skúseného admina. Pri zložitejších príkazoch (ktoré majú viacej riadkov) odporúčam používať zabudovaný nástroj vo Windows – PowerShell ISE. Pokiaľ chceš vyskúšať písať vlastné mini aplikácie v PowerShell, odporúčam pozrieť aj web Stackoverflow, kde nájdeš množstvo scriptov, príkazov a rád. Pozri si aj môj predchádzajúci článok : Wi-Fi a PowerShell : 10 + 2 príkazy pre správu.

? Odporúčané príkazy:
Get-StorageReliabilityCounter– kontrola zdravia diskovGet-CimInstance– získanie systémových informácií cez CIM/WMIGet-Counter– výkonnostné metriky v reálnom čase
? Tip pre správcov: V kombinácii s Azure Automation, Task Scheduler alebo open-source riešeniami ako Prometheus a Grafana dokážeš PowerShell premeniť na profesionálny monitoringový nástroj.






