PowerShellでCPUとメモリの使用率をログに出力する方法

この記事では、PowerShellを用いてコンピュータのCPUとメモリの使用率をログに出力する方法について詳しく解説します。初心者向けに基本的なコードの書き方から、応用例まで網羅しています。

目次

なぜCPUとメモリの使用率を知る必要があるか

パソコンが遅く感じる、アプリケーションが予期せず終了する、などの問題が発生した場合、CPUやメモリの使用率を確認することで原因を突き止める手がかりになります。特に、サーバーや業務で使うコンピュータでは、これらの情報を時系列で保存し分析することが重要です。

PowerShellとは

PowerShellは、Microsoftが開発したスクリプト言語およびシェルです。Windowsだけでなく、LinuxやmacOSでも利用できます。PowerShellは、システム管理作業を自動化したり、各種設定をスクリプトで制御するための非常に強力なツールです。

PowerShellのインストール方法

Windows 10以降では、PowerShellはデフォルトでインストールされています。もし、古いバージョンのWindowsを使用している場合は、Microsoftの公式サイトからダウンロードしてインストールすることが可能です。

基本的なコードの作成

以下は、PowerShellを使ってCPUとメモリの使用率をログに出力する基本的なコードです。

# CPUの使用率を取得
$cpuUsage = (Get-Counter "\Processor(_Total)\% Processor Time").CounterSamples.CookedValue

# メモリの使用率を取得
$memoryUsage = (Get-Counter "\Memory\Available MBytes").CounterSamples.CookedValue

# ログに出力
$logTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$logMessage = "$logTime, CPU使用率: $cpuUsage%, メモリ使用率: $memoryUsage MB"
Add-Content -Path "C:\path\to\your\log.txt" -Value $logMessage

コードの説明

  1. Get-Counter コマンドレットを使用してCPUとメモリの使用率を取得します。
  2. Get-Date で現在の日時を取得します。
  3. Add-Content で取得した情報をテキストファイルに出力します。

Get-Counterについて

Get-Counter は、システムのパフォーマンス情報を取得するためのコマンドレットです。このコマンドレットには多くのオプションがあり、詳細は公式ドキュメントを参照してください。

応用例

定期的にログを取る

以下のコードは、10秒ごとにCPUとメモリの使用率をログに出力する例です。

while ($true) {
    # CPUとメモリの使用率を取得
    $cpuUsage = (Get-Counter "\Processor(_Total)\% Processor Time").CounterSamples.CookedValue
    $memoryUsage = (Get-Counter "\Memory\Available MBytes").CounterSamples.CookedValue

    # ログに出力
    $logTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    $logMessage = "$logTime, CPU使用率: $cpuUsage%, メモリ使用率: $memoryUsage MB"
    Add-Content -Path "C:\path\to\your\log.txt" -Value $logMessage

    # 10秒待機
    Start-Sleep -Seconds 10
}

まとめ

この記事では、PowerShellを使ってCPUとメモリの使用率をログに出力する方法について解説しました。このようにして得られたデータは、パフォーマンスのモニタリングや問題解析に役立つ情報となるでしょう。基本的なコードから応用例まで、さまざまなケースに対応できるように解説していますので、ぜひ実践してみてください。

コメント

コメントする

目次