Windows Serverには「緊急管理サービス(EMS)」という帯域外(アウトオブバンド)管理機能が標準搭載されており、オプションで有効化できます。これまで、この機能はクライアントOSには提供されてきませんでしたが、Windows 10 May 2020 Update(バージョン2004)で新たにサポートされました。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「Windows 10」の最新バージョン「Windows 10 May 2020 Update(バージョン2004、ビルド19041)」の注目の新機能として紹介されているものは、企業ユーザーにとってあまり重要ではないものに見えるかもしれません。しかし、以下のIT担当者向けの新機能の紹介ページにはない、今回紹介する隠れた新機能は、IT担当者にトラブルシューティングの新しい手段を提供します。
「緊急管理サービス(Emergency Management Services、EMS)」は、シリアルポート経由でOS環境への直接的なアクセス機能を提供するもので、「Windows Server 2003」以降の全てのWindows Server(バージョンおよびエディション)で利用可能です。
EMSを有効化すると、シリアルポートを介して別のマシンの端末ソフトウェア(PuTTYなど)から「Special Administration Console(SAC、半期チャネルのSACとは無関係)」と呼ばれるシリアルコンソールに接続し、ホストやネットワークの情報取得や再起動、メモリダンプの作成、コマンドプロンプトへの対話的な接続を行うことができます。これにより、ローカルコンソールが応答しない、OSが正常起動しないといった問題に対処できるようになります。
Windows ServerのEMSおよびSACについては、以下の別連載の記事で紹介しています。以下の記事にあるように、シリアルポートが利用できる場合は、サーバと作業用のPCをクロス型のシリアルケーブルで直結します。Hyper-Vの仮想マシン環境であれば、仮想マシンの仮想的なCOMポート(COM1またはCOM2)を名前付きパイプに接続し、端末ソフトウェアを名前付きパイプに接続することでEMSのSACにアクセスすることができます。
Azure仮想マシンは「シリアルコンソール」機能を備えており、Windows Serverを実行する仮想マシンについてはEMSのSAC(Azure MarketplaceのWindows ServerイメージはEMSが構成済み)や「Windowsブートマネージャー」(Windowsブートマネージャーへのアクセスには追加の構成が必要)にAzureポータルから対話的にアクセスできます(Linux仮想マシンについては、Linuxのローカルコンソールに対話的にログオンすることができます)。
2020年4月にビルドが完成し、5月から一般提供が始まったWindows 10 May 2020 Update(バージョン2004、ビルド19041)には、オプション機能(オンデマンド機能)として「Windows 10用EMSとSACのツールセット」が新たに追加されました(画面1)。
このオプション機能はWindows Serverに搭載されているEMSを、Windows 10(Homeエディションを含む)でも利用可能にするものです。オプション機能を追加したら、「Windows Server 2008」以降と同様の方法でEMSの有効化および構成が可能です。サーバマシンとは異なり、最近のデスクトップPCやノートPCは物理的なシリアル(COM、RS232C)ポートを備えていませんが、USB経由でCOMポートを簡単に増設することもできますし、仮想マシン環境であれば仮想マシンのCOMポートを利用できます。
具体的には、EMSを有効化するWindows 10でコマンドプロンプトを管理者として開き、以下のコマンドラインを実行して再起動します。
bcdedit /ems {current} on bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200 shutdown /r /t 0
Hyper-V仮想マシンでシリアルコンソールへのアクセスを可能にするには、Hyper-Vのホスト側のWindows PowerShellを管理者として開き、次のコマンドラインを実行して「COM 1」または「COM 2」を名前付きパイプにリダイレクトするように構成します。なお、この構成は仮想マシンの実行中でも可能ですが、設定が有効になるのは次回に仮想マシンを開始(オフからの起動)したときです(画面2)。
Set-VMComPort -VMName "仮想マシン名" -Number <1または2> -Path \\.\pipe\<パイプ名>
後は作業用のPCで任意の端末ソフトウェア(PuTTYなど)を起動して、シリアルポート(クロス型のシリアルケーブル直結)または名前付きパイプにボーレート「115200」で接続します(画面3)。
SACコンソールで利用可能なコマンドの一覧は「?」と入力すると確認できます。コマンドプロンプトにアクセスするには、「cmd」と入力して新しい「コマンドプロンプトチャネル」を作成し、そのチャネルに切り替えてログオン認証を行い、任意の管理操作をコマンドラインで行います(画面4)。
「Windowsブートマネージャー」へのアクセスを可能にするには、管理対象となるWindows 10のEMS設定で、さらに以下の構成を行ってください(画面5)。なお、以下の追加の構成を行っても、Windows 10の「自動修復」機能や「回復オプション」には、EMSのSACコンソールからはアクセスすることはできません。
bcdedit /set {bootmgr} displaybootmenu yes bcdedit /set {bootmgr} timeout 30 bcdedit /set {bootmgr} bootems yes
サーバとは異なり、Windows 10は手元のPCで動作していることが多く、ローカルコンソールに異常がある場合を除いてEMSのニーズはさほどないかもしれません。物理的なCOMポートを備えているPCも少なくなりました。
しかし、最近ではオンプレミスの仮想デスクトップインフラストラクチャ(VDI)や、Azureのクラウド(Azure仮想マシンやWindows Virtual Desktop)にWindows 10 Pro/Enterpriseを展開して、リモートからアクセスするという利用シナリオも選択できるようになりました。Windows 10におけるEMSのサポートは、ローカルコンソールに手の届かないリモートにある場合の起動トラブルへの対処に活用できます(画面6)。
また、デスクトップを乗っ取られるような場面(閉じる間もなく繰り返し警告ダイアログボックスを表示するなど)に遭遇した際に、PCを再起動することなく、EMSのSACコンソールから問題のプロセス(ブラウザなど)を強制終了させることもできます。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2019-2020)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.