本連載第174回では、Windows Server 2016の更新プログラムのインストール時に実行が重なると影響が大きいメンテナンスタスクについて、時短に役立つかもしれないコマンドラインのテクニックを紹介しました。今回はその応用です。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載の第174回では、特に「Windows Server 2016」において、Windows Updateの更新プログラムのインストール処理と重なると影響が大きいバックグラウンド実行のメンテナンスタスクを、更新前または更新後に手動で実施することで、次回のWindows Updateの時短を図るコマンドラインのテクニックを紹介しました。
その際に紹介したPowerShellスクリプト「myprocmon.ps1」は、Windows Server 2016のデスクトップエクスペリエンス環境で、自動クリーンアップ処理のためにバックグラウンドで実行される、または手動で実行した「ディスククリーンアップ」のプロセス(cleanmgr)の存在を定期的に確認し、プロセスが終了したら監視を終了するというものでした。cleanmgrプロセスが実行中の物理マシンや仮想マシンでこのスクリプトを実行すれば、後は放置しておいてもシャットダウンして停止してくれます。
「\Microsoft\Windows\DiskCleanup\SilentCleanup」タスクの実行中、またはこのタスクに設定されたコマンドライン(cleanmgr.exe /autoclean /d C:)の手動実行と組み合わせて利用することを想定して作成しましたが、「Windows 10」で「ディスククリーンアップ」を実行し、「Windows Updateのクリーンアップ」を選択して、時間がかかるクリーンアップを実施するときにも活用できます(画面1、画面2)。
while(1) { $procid = (Get-Process -ProcessName "cleanmgr" -ErrorAction SilentlyContinue).Id if ($procid.Length -eq 0) { Write-Host "cleanmgr not running currently" break } else { Write-Host "cleanmgr (PID" $procid ") is alive" } Start-Sleep -seconds 15 } TIMEOUT 30 Stop-Computer -Force
PowerShellスクリプト「myprocmon.ps1」を作成してからは、何かしらの処理の実行を開始して放置し、自動終了させるために、いろいろと重宝しています。Hyper-Vの仮想マシンのゲストOSで利用することが多いのですが、今回はHyper-Vホストの稼働状況と連動することも考えてみました。
Copyright © ITmedia, Inc. All Rights Reserved.