Windowsの標準のローカルコンソールは、VGAなどのビデオ出力です。多くの人はWindowsにシリアルコンソールなんて存在しないと思っているのではないでしょうか。実は、Windows Server 2003以降は、シリアルポートに対応したアウトオブバンド管理機能として「EMS(Emergency Management Services:緊急管理サービス)」を標準で搭載しており、EMSの主要な機能として「Special Administration Console(SAC)」という特別なコンソールを備えています。
SACコンソールでは、プロセスの一覧表示(tまたはf)、IPネットワーク情報の表示と設定(i)、コンピュータの情報表示(id)、プロセスの制御(k、l、r)、時刻の表示と設定(s)、再起動(restart)、シャットダウン(shutdown)、そして利用可能な状態であればコマンドプロンプトチャネルの作成と切り替え(cmdおよびch)が可能です。詳しくは、以下の連載記事を参照してください。
Azure MarketplaceのWindowsイメージからデプロイした仮想マシンでは、EMSは構成されていません。そのため、「シリアルコンソール(プレビュー)」によるアクセスを可能にするために、事前にゲストOS側でCOM1を使用するようにEMSを有効化し、再起動しておく必要があります。それには、仮想マシンにRDP接続し、コマンドプロンプトで次のコマンドを実行します(画面4)。
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200 bcdedit /ems {current} on shutdown /r /t 0
これで次回の仮想マシン起動時からEMSが利用可能になり、「シリアルコンソール(プレビュー)」によるアクセスも可能になります。「イベント:CMDコマンドを利用できます。」(英語環境の場合は「EVENT: The CMD command is now available.」)と表示されたら、コマンドプロンプトチャネルを作成して切り替え、Windowsのコマンドプロンプト環境にログオンできるようになります(画面5)。
コマンドプロンプト環境が利用できれば、ファイル操作、レジストリの編集(REGコマンドを使用)、ブート環境の編集(BCDEDITコマンドを使用)、サービスやプロセスの操作(NET、SC、TASKLIST、TASKKILLコマンドなど)、システム情報やイベントログの参照(WMICコマンドなど)などでトラブルシューティングを行えるでしょう。「powershell.exe」を開始すれば、さまざまなPowerShellコマンドレットを利用することもできます。
なお、LinuxやWindowsの通常のシリアルコンソールは、電源オン後のかなり早い段階から出力を開始し、シャットダウンを開始してから電源が完全にオフになる直前まで利用可能ですが、実際に「シリアルコンソール(プレビュー)」を利用してみると、利用可能な幅はそれよりも短い印象を持ちました。そのため、仮想マシンの開始直後や再起動中などタイミングによってはトラブルシューティングには利用できない場合もあります。
Windows ServerのHyper-Vおよびその他の仮想化製品は、COMポートのリダイレクト機能をサポートしています。Hyper-Vの場合は、COM1またはCOM2ポートを名前付きパイプにリダイレクトすることができ、OSに対するシリアルコンソール接続やカーネルデバッグのための接続に利用することができます(画面6、画面7)。
Windows仮想マシンでSACコンソールを利用可能にする方法は、Azure仮想マシンの場合と同様です。Linux仮想マシンでシリアルコンソールを利用可能にする方法については、Azure MarketplaceのLinuxイメージからデプロイした仮想マシンの設定(CentOSの場合は/etc/default/grub)を参考にするとよいでしょう。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.