チャレンジ、秘密のWinRE!山市良のうぃんどうず日記(137)(2/2 ページ)

» 2018年10月02日 05時00分 公開
[山市良テクニカルライター]
前のページへ 1|2       

Server CoreのWinREでAdministratorが見えない謎

 Windows Server 2016のServer Coreインストールで、ReAgentcコマンドを利用してWinREのコマンドプロンプトに入ろうとしたところ、既定のローカル管理者である「Administrator」が表示されないことに気が付きました(画面3)。これではコマンドプロンプトに入ることができません。

画面3 画面3 上の画面はWindows Server 2016のServer Core、下の画面はWindows Server 2012 R2のServer Core

 「デスクトップエクスペリエンス」インストールのGUI環境から通常の方法で開始したWinREや、ReAgentcコマンドで起動したWinREではちゃんと「Administrator」を選択でき、パスワードを入力することでWinPEのコマンドプロンプトに入れます。

 Windows Server 2012 R2のServer Coreインストールでも試してみましたが、その場合も「Administrator」を選択できました。一方、Server Coreインストールのみでインストール可能なWindows Server Semi-Annual Channel(バージョン1709および1803)で試してみたところ、Windows Server 2016のServer Coreインストールと同様に「Administrator」が表示されず、コマンドプロンプトを開始できませんでした。

 試しに、Administratorを別の名前に変更(アカウントは同じ)してみましたが、状況は変わりません。ローカル管理者として別のローカルアカウントを作成(Administratorsグループのメンバーとして作成)すると、そのユーザー名は表示され、パスワードを入力することでコマンドプロンプトに入れました(画面4)。

画面4 画面4 ビルトインのAdministratorとは別のローカルアカウントを作成し、Administratorsグループのメンバーにすると表示されるように

 これがWindows Server 2016以降のServer Coreインストールの仕様なのか、不具合なのかは分かりませんが、Administratorとは別のローカル管理者を作成し、Administratorアカウントを無効にすることはセキュリティ上好ましい運用なので、別のローカル管理者を作成することをお勧めします。ただし、WinREはめったに必要になるものではないので、外部メディアからWinREを開始すること(ローカル管理者のパスワードの入力が不要)で対処することも可能です。

知っておきたい、新しいバージョンのWinREの新たな制約

 WinREは日本語入力をサポートしていないため、日本語を入力することができません。コマンドプロンプトではWinPEの「WPEUTIL」コマンド、Windowsの標準的なコマンド、「レジストリエディター」(Regedit.exe)、「メモ帳」(Notepad.exe)、外部のツールを利用できますが、Windows PowerShellは利用できません。

 また、64bit版WinRE(64bit版Windowsに付属のWinRE)は「WOW64(Windows 32-bit on Windowws-64 bit)」サブシステムを備えていないため、32bit版のツールやアプリケーションを実行できないという制約もあります。これらの制約をご存じの方は多いと思いますが、後者について補足しておきます。

 例えば、Windows Sysinternalsユーティリティーの多くは、WinPEのコマンドプロンプトでも利用できます。64bit版WinREでは、“明示的に”64bit版の実行ファイル(Autoruns.exeではなくAutoruns64.exe、Sigcheck.exeではなくSigcheck64.exe)を指定する必要があります(画面5)。

画面5 画面5 64bit版WinREはWOW64を搭載していないため、64bitネイティブなバイナリしか実行できない

 Windows Sysinternalsユーティリティー(例えば、Autoruns.exe)は、32bitと64bitの両方に対応していますが、Autoruns.exeを実行すると最初に32bitコードが実行され、WOW64が利用可能であれば64bitバイナリであるAutoruns64.exeを抽出して実行するようになっています。WOW64が利用できない場合、この動作は不可能なのです。現在のWinREが32bit版なのか64bit版なのかは、「X:\Program Files (x86)」ディレクトリ(中身は空っぽ)が存在するかどうかで判断できます。存在する場合は64bit版WinREです。

 WinPEのコマンドプロンプトで「WPEUTIL InitializeNetwork」または「STARTNET」と入力すると、有線ネットワークが初期化され、ネットワーク機能が利用可能になります。例えば、「NET USE」コマンドで共有フォルダに接続し、共有フォルダからツールをコピーしたり、共有フォルダへ重要なファイルをバックアップしたりできます。

 最近のWinREでは、そのような利用で注意が必要になります。Windows 10 バージョン1709以降のWinRE(ビルド16299以降のWinRE)からはSMB(Server Message Block)v1のサポートが削除されているため、SMBv1でなければアクセスできないような古いネットワーク接続型ストレージ(NAS)の共有フォルダには接続できません(画面6)。

画面6 画面6 Windows 10 バージョン1709以降のWinRE(ビルド16299以降のWinRE)は、SMBv1プロトコルをサポートしていない

 現在実行中のWinREのバージョン(ビルド)は「ver」コマンドで確認できます。例えば、verコマンドの結果が「Microsoft Windows [Version 10.0.16299.x」や「Microsoft Windows [Version 10.0.17134.1」、あるいはまだ存在しない、より新しいバージョンであれば、SMBv1は利用できません。

 WinREは見た目こそ変わりませんが、アーキテクチャ(32bit/64bit)やバージョンによって制約があることに注意してください。

Windows 10 バージョン1803の「curl.exe」によるダウンロードが可能

 Windows PowerShellでは「Invoke-WebRequest」コマンドレット(wgetエイリアス)を使用することで、コマンドライン環境だけで指定したURL(URI)からファイルをダウンロードできます。しかし、前述したように、WinREのWinPEコマンドプロンプトではWindows PowerShellを利用できません。

 Windows 10 バージョン1803(ビルド17134)からは、Windowsの標準コマンドとしてオープンソースの「curl」(C:\Windows\System32\curl.exe)が仲間入りしました。Windows 10 バージョン1803のWinREはcurlを搭載していませんが(「X:\Windows\System32\curl.exe」は存在しない)、ローカルディスクにインストールされているWindowsの「curl.exe」を実行することで、ファイルのダウンロードなどを実行できます(画面7)。

画面7 画面7 ローカルにインストールされているWindows 10 バージョン1803の「curl.exe」(この例ではD:ドライブのパス)をWinREのコマンドプロンプトから実行して、ファイルをダウンロードする

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

「Windows 7」サポート終了 対策ナビ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。