プロセスごとのメモリ使用量を監視したかったので、以下スクリプトを作成しジョブ実行させることに
※Get-Process の引数にプロセス名指定するとプロセス単位で出力できる。
# 保存先ディレクトリのパスを指定
$directory = "C:\Logs"
# ディレクトリが存在しない場合は作成
if (-not (Test-Path -Path $directory)) {
New-Item -ItemType Directory -Path $directory
}
# 現在の日付と時刻を取得してファイル名を作成
$fileName = Join-Path -Path $directory -ChildPath "$(Get-Date -Format 'yyyyMMdd').log"
# 現在の時刻を取得
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
# メモリ使用量を取得してログファイルに追記
Get-Process | Select-Object @{Name="Timestamp";Expression={$timestamp}}, Name, @{Name="Memory (MB)";Expression={[math]::round($_.WorkingSet / 1MB, 2)}} |
Sort-Object "Memory (MB)" -Descending |
Out-File -FilePath $fileName -Append