Windows 10の各エディションに用意されている「Sモード」(Pro in S modeなど)は、システムの安定性やセキュリティ、パフォーマンスのために“ロックダウンされた”動作モードです。Sモードでは何ができるのか、できないのか、最新のWindows 10 May 2020 Update(バージョン2004)のSモード環境であらためて探ってみました。Sモードが登場してからWindows 10は複数のバージョンがリリースされてきました。公式ドキュメントにはまだ反映されていない変更点があるかもしれません。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「Windows 10 Sモード」(Windows 10 Pro in S mode、Enterprise in S modeなど)は、Windows 10 Pro バージョン1703をベースに作成された「Windows 10 S」というエディションとして登場し、バージョン1803で動作モードとしての「Sモード」に変更されました。Windows 10の各エディションと各エディションのSモードは共通のバイナリであり、SモードはWindows 10の一部の機能や利用可能なアプリが“ロックダウンされた”動作モードです。
Windows 10(S モード)とは、使い慣れたWindowsエクスペリエンスを提供しつつ、セキュリティとパフォーマンスに特化して合理化されたWindows 10のバージョンです。セキュリティを高めるために、Microsoft Storeからのアプリのみが許可され、安全な閲覧のためにMicrosoft Edgeが必要になります。
(「Windows 10(Sモード)に関してよくあるご質問」から引用)
Sモードの制限の詳細については、以下のOEM向けのドキュメントで説明されています。
具合的には「コマンドプロンプト(Cmd.exe)」「Windows PowerShell(PowerShell.exe)」「レジストリエディター(Regedit.exe)」「Windows Script Host(WSH)スクリプトエンジン(CScript.exe、WScript.exe)」「Windows Subsystem for Linux(WSL)」など、システムの詳細なカスタマイズを行うことができるコマンドシェルやツール、スクリプトエンジンの使用が禁止されます(画面1)。
Sモードでは「Microsoft Store」で提供される「ユニバーサルWindowsプラットフォーム(UWP)」アプリのインストールと実行が許可され、Webブラウザとしては標準の「Microsoft Edge」の使用が勧められています(「Internet Explorer」の使用がブロックされることはありません)。また、「Microsoft Office」アプリは「OEMプレインストールキット(OPK)」を使用することで、Microsoft Storeで提供されるバージョンと同じものをプリインストールできると説明されています。
少し気になるのは、展開計画のドキュメントがWindows 10 S登場時の2017年6月に公開されたものであり、“その後のバージョンもこの通りであるのかどうか”ということです。SモードのプリインストールPCを購入した場合、通常のWindows 10と同様、機能更新プログラムは半期に一度提供され、Sモードを解除しない限り、Sモードのまま新バージョンにアップグレードすることになります。そこで、最新の「Windows 10 May 2020 Update(バージョン2004)」のSモードで筆者がいろいろと試してみました。
通常、SモードはプリインストールPCでしか入手できませんが、筆者のHyper-V環境には「Visual Studioサブスクリプション」(旧称、MSDNサブスクリプション)向けに提供された英語版「Windows 10 S」エディション(バージョン1703)からバージョン2004までアップグレードを繰り返してきた最新のSモード環境があります。なお、Windows 10の以前のバージョンでは状況が異なる可能性があります。
2020年6月から、Chromiumベースの新しいMicrosoft EdgeのWindows Updateによる配布が段階的に始まっています(ただし、ドメイン参加デバイスやWSUS管理下のデバイスは対象外)。Microsoft Storeからのみアプリを入手してインストールし、使用できることになっていますが、Sモードでも新しいMicrosoft Edgeは利用できるのでしょうか。
新しいMicrosoft EdgeのWindows Updateによる自動配布は段階的に拡大されるため、全てのPCですぐに利用可能になるわけではありません。そこで、以下のダウンロードサイトから一般向けの「MicrosoftEdgeSetup.exe」とビジネス向けの「MicrosoftEdgeEnterpriseX64.msi」をダウンロードして、手動でSモードのWindows 10環境にインストールしてみました。
Webからダウンロードした実行ファイル形式(.exe)やWindowsインストーラーパッケージ(.msi)形式のインストーラーは、Microsoft Storeからのダウンロードではないため、Sモードの制限によりブロックされるものと思っていました。しかし、何の問題もなくインストールを完了し、新しいMicrosoft Edgeを起動することができました(画面2)。これならWindows Updateによる自動配布も問題なさそうです。
さらに、Officeポータルからの「Microsoft 365アプリ」(旧称、Office 365 ProPlus)のダウンロードとインストールも試してみました(画面3)。こちらも問題なく完了し、デスクトップ版Officeアプリを起動することができました。ちなみに、「Office Professional Plus 2016」や「Office Professional Plus 2019」のインストールメディアの「Setup.exe」によるインストールはSモードの制限によりブロックされました。
Windows 10 バージョン2004の目玉の新機能といえば、「Windows Subsystem for Linux(WSL)」のバージョン2、通称「WSL 2」です。2020年8月からはWindows 10 バージョン1903/1909にもバックポートされ、WSL 2が利用可能になりました。従来のWSL(既定のバージョン、WSL 1)はLinuxカーネルをエミュレーションすることでLinuxのネイティブバイナリの動作を可能にしますが、新しいWSL 2は本当のLinuxカーネルを使用することで完全な互換性と高いパフォーマンスを実現します。
Windows 10 バージョン2004の既定はWSL 1ですが、Linuxカーネルの更新と仮想マシンプラットフォーム」機能の追加により、WSL 2に既定を切り替えたり、WSL 1からWSL2へLinuxディストリビューションを変換したり、WSL 1とWSL 2のLinuxディストリビューションを共存したりすることが可能です。
Sモードでは、WSLの機能の有効化やMicrosoft StoreからのLinuxディストリビューションのダウンロードとインストールがブロックされることはありませんが、初回起動時のセットアップはエラーで失敗しました。
また、既定のLinuxディストリビューションの起動やWSLバージョンの設定や変換を行う「wsl.exe」コマンドの実行は、Sモードの制限によりブロックされます。さらに、WSL 2を利用可能にするための「Linuxカーネルの更新」(wsl_update_x64.msi、Windows Subsystem for Linux update)のインストールもSモードの制約によりブロックされます(画面4)。つまり、Sモードでは、WSL 1もWSL 2も利用できないということです。
Windowsやアプリの問題が発生したときに、高度なトブルシューティングを行うにはコマンドプロンプトやWindows PowerShell、レジストリエディターが利用できないとどうにもならないことがあります。Sモードではこれらを利用する方法は本当に存在しないのでしょうか。
SモードのWindows 10は、通常のWindows 10と同様に「セーフモード」で起動することができます。しかしながら、Sモードの制限はセーフモードで起動しても解除されることはありません(画面5)。また「セーフモードとコマンドプロンプト」は選択しても有効にならず、通常の「セーフモード」が起動します。
Windows PowerShellには「PowerShell Remoting」というPowerShellセッションへのリモートからの接続や、スクリプトブロックのリモート実行の機能があります。しかし、SモードではPowerShell Remotingを有効化するための設定コマンド(「WinRM -qc」や「Enable-PSRemoting」)を実行できません。
SモードのWindows 10がHyper-V仮想マシンで動作している場合は(通常、Sモードの新規インストールはできません)、PowerShell Remotingを構成しなくても、仮想マシンに対して同様のリモート実行が可能な「PowerShell Direct」を利用できます。試しに、SモードのWindows 10の仮想マシンにPowerShell Directで接続を試行したところ、リモートセッションが強制終了されてしまいました(画面6)。
以下の記事で紹介したように、Windows 10バージョン2004の全てのエディションでは、それまでWindows Serverにのみ提供されていた「EMS(緊急管理サービス)」と「SAC(Serial Administrative Console)」の機能が、オプション機能としてサポートされました。
SモードのWindows 10でもこの機能を有効化できます(ブート構成の編集には、後述するWinRE環境を使用しました)。しかし、端末ソフトウェアでEMSのSACコンソールに接続を試みると、CMDチャネルの作成は可能ですが、作成されたチャネルに切り替えようとユーザー認証を行うと、チャネルが強制終了させられました(画面7)。
コマンドライン操作やレジストリ編集といった高度なトラブルシューティングを行う方法としては、筆者はWindows 10のトラブルシューティングオプションの一つである「Windows回復環境(Windows Recovery Environment、WinRE)」くらいしか思い付きません。難易度は高くなりますが、PowerShell DirectやEMSのSACコンソールの状況を見れば、それ以外に抜け道はないようです。
WinREの「コマンドプロンプト」は、読み取り専用イメージから起動するWindowsの別インスタンスであり、Sモードの制約は受けません。SモードのWindows 10がインストールされているディスクを、別の通常モードのPCにマウントして操作するのと同じです。
例えば、レジストリエディターにオフラインイメージのハイブ(\Windows\System32\Config\SYSTEMやSOFTWARE)をロードすれば、レジストリに変更を加えることができます(画面8)。「BCDEDIT」コマンドに「/store ドライブ文字:\EFI\Microsoft\BOOT\BCD」(UEFIの場合)や「/store ドライブ文字:\BOOT\BCD」(BIOSの場合)オプションを指定すれば、ブート構成を編集することができます。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2020-2021)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.