PowerShellを使ってシステムリソース(CPU、メモリ、ディスク、ネットワークなど)の使用率をリアルタイムで確認する方法を初心者向けに解説します。この記事では、独自のスクリプトを作成して、Windowsのパフォーマンスを監視するプロセスを自動化する手法について深く探ります。
なぜシステムリソースの使用率を確認するのか
システムのパフォーマンスが低下していると感じた場合、問題の原因を特定する最初のステップはしばしばシステムリソースの使用率を確認することです。これにより、メモリが足りない、CPUが過負荷である、あるいはディスクが一杯であるといった問題を早期に察知できます。
手動での確認方法
手動でシステムリソースを確認する一般的な方法は、タスクマネージャーを開くことです。しかし、この方法は即座の状況しか確認できず、長期的な監視や記録には向いていません。
自動化の必要性
システムリソースの使用率を定期的に確認し、それを記録することで、将来的なトラブルを未然に防ぐことができます。特にサーバーや重要な業務システムにおいては、このような監視が不可欠です。
PowerShellスクリプトの作成
PowerShellを使用してシステムリソースの使用率を確認するスクリプトを作成します。このスクリプトはWindows環境で動作します。
# CPU使用率を取得
$cpuUsage = Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 1 -MaxSamples 5 |
Select-Object -ExpandProperty CounterSamples |
Select-Object -ExpandProperty CookedValue |
Measure-Object -Average |
Select-Object -ExpandProperty Average
# メモリ使用率を取得
$memUsage = Get-Counter -Counter "\Memory\% Committed Bytes In Use" -SampleInterval 1 -MaxSamples 5 |
Select-Object -ExpandProperty CounterSamples |
Select-Object -ExpandProperty CookedValue |
Measure-Object -Average |
Select-Object -ExpandProperty Average
# 結果を表示
Write-Host "CPU使用率: $([math]::Round($cpuUsage, 2))%"
Write-Host "メモリ使用率: $([math]::Round($memUsage, 2))%"
コードの解説
Get-Counter
コマンドレット:システムのパフォーマンスカウンター情報を取得します。Select-Object -ExpandProperty
:指定したプロパティの値だけを抽出します。Measure-Object -Average
:平均値を計算します。
このスクリプトは、CPU使用率とメモリ使用率を平均して、それをコンソールに出力します。
実行方法
- PowerShellを管理者モードで開きます。
- スクリプトをコピーして実行します。
応用例
このスクリプトは単純ですが、応用することで更に多くの情報を得られます。例えば、ディスクやネットワークの使用率も確認できます。また、特定のプロセスのリソース使用状況を確認するためのカスタマイズも可能です。
補足事項
PowerShellスクリプトの実行ポリシーによっては、スクリプトが実行できない場面もあります。その場合は、Set-ExecutionPolicy
コマンドレットを使用してポリシーを変更できます。
まとめ
この記事では、PowerShellを使用してシステムリソースの使用率をリアルタイムで確認する方法を初心者向けに説明しました。独自のスクリプトを作成することで、より効率的なシステム監視が可能です。
コメント