「Windows 10 Sモード」は、個人、企業、教育機関のPC向けに用意されたWindows 10のロックダウンモードです。前回に引き続き、Windows 10 Sモードのその他の制約について説明します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
前回紹介したように、「Windows 10」の全エディションに存在する「Sモード」(プリインストールPCのみ)は、Windowsに最初から搭載されている機能やツールの他は、Microsoft Storeから入手したアプリのみを実行できる“ロックダウンモード”です。
Sモードに搭載されている機能は通常のエディションと共通ですが、「コマンドプロンプト」や「Windows PowerShell」「Windows Script Host(WSH)」など、シェル環境の使用は許可されておらず、ブロックされます。また、Windows 10の標準機能である「Windows Subsystem for Linux(WSL)」が提供するLinuxシェル環境も、Sモードではブロックされます。
WSLだけでなく、Windows 10のその他の主な機能についてもSモードで利用できるかどうかを実際に試してみました。具体的には、以下に挙げる5つのWindowsの機能と、2つのストアアプリ(無料)です。
Sモードだからといって、これらのWindows 10機能の有効化やアプリのインストールがブロックされることはありませんが、Sモードで利用できるかどうかはまた別の話です(画面1)。これらの機能やアプリとSモードとの互換性について公開されている情報はないようなので、Windows 10 Pro バージョン1803、1809、1903のSモードで実際に試してみました。
Windows 10 Pro以上の64bit(x64)エディションでは、「クライアントHyper-V」とも呼ばれる仮想マシン環境がサポートされます。Hyper-Vのシステム要件さえ満たしていれば、SモードでもHyper-Vを有効化し、仮想マシンを作成して実行できます(画面2)。
ただし、SモードではWindows PowerShellが利用できないため、Hyper-V関連のコマンドレットを使用した詳細な管理はできません。GUI(グラフィカルユーザーインタフェース)管理ツールである「Hyper-Vマネージャー」による管理なら可能です。
「Windows Defender Application Guard(WDAG)」は、Windows 10 バージョン1709のEnterpriseエディションに初めて搭載された、「Microsoft Edge」の隔離されたブラウジング環境です。Windows 10 バージョン1803からはProエディション、バージョン1903からはEducationエディションでも利用可能になりました。本連載第51回では、WDAGの最新情報を紹介しました。
WDAGのシステム要件さえ満たしていれば、SモードでもWDAGを有効化して利用することができます(画面3)。
なお、Windows 10(バージョン1803以降)に「Windows Defender Application Guard Companion」アプリを追加することで、「Google Chrome」や「Mozilla Firefox」とWDAGを連携させることができるようになりましたが、この機能はSモードでは利用できません。
Sモードでも、Microsoft StoreからWindows Defender Application Guard Companionアプリをインストールすることは可能です。しかし、Google ChromeやMozilla FirefoxがMicrosoft Storeで提供されていないため、Sモードの環境にこれらのブラウザを導入する方法がないのです。
Windows 10 バージョン1803からは「OpenSSHクライアント」と「OpenSSHサーバ」が標準搭載されました。OpenSSHクライアントは既定でインストールされ、OpenSSHサーバはオンデマンド機能として追加することができます。詳しくは、本連載第45回で紹介しました。
OpenSSHクライアントが標準で利用でき、OpenSSHサーバがオンデマンド機能として追加できることは、Sモードでも変わりません。OpenSSHサーバ(sshd)もサービスとして動作しているように見えます。OpenSSHクライアント(ssh.exe)からローカルのOpenSSHサーバに接続を開始すると、認証までは進みますが、その後、すぐにウィンドウは消えてしまいます(画面4)。
何が起きているのかというと、OpenSSHサーバ側ではコンソールウィンドウホスト(conhost.exe)がコマンドプロンプト(cmd.exe)をロードしようとして、Sモードによりブロックされているのです。その様子は、イベントログの「Microsoft-Windows-CodeIntegrity/Operational」ログに記録されるイベントID「3077」のエラーで追跡することができます。
なお、SモードではコマンドプロンプトやWindows PowerShellを利用できないため、OpenSSHクライアントは「ファイル名を指定して実行」などからコマンドラインを直接実行する必要があります。使い勝手は悪いですが、外部のSSHサーバへの接続には利用できるはずです。
本連載第42回で最新情報を紹介しましたが、「Windows Server 2016」以降のコンテナ(Containers)機能はWindows 10でもサポートされ、コンテナベースのアプリケーション開発環境として利用できます。そもそも、Sモードは開発環境向けではありませんが、一応、試してみました。
Windows 10のコンテナ機能の有効化は、Sモードでもブロックされることはありません。しかし、Windows 10のコンテナ機能だけでは何もできません。そのコンテナ機能と連携して、「Windows Serverコンテナ」環境や「Linuxコンテナ」環境を提供するのは「Docker Desktop for Windows」です。Docker Desktop for WindowsはMicrosoft Storeで提供されるアプリではないため、SモードのWindows 10に導入する方法がありません(画面5)。
つまり、SモードのWindows 10では、コンテナ機能は事実上、利用できないということになります。Dockerコマンドを操作するためのシェル環境(コマンドプロンプト、Windows PowerShell、WSHのLinuxシェル)もSモードでは利用できないということもあります。
Windows 10 バージョン1903の64bit(x64)版では、「Windowsサンドボックス」というWindows 10の隔離環境が新たにサポートされました。
Sモードでは、Windowsサンドボックスを有効化し、サンドボックス環境を起動することができました(画面6)。サンドボックス環境の中では、コマンドプロンプトを開くこともできます。これは、SモードのWindows 10で利用可能な唯一のシェル環境といえるかもしれません。しかしながら、サンドボックス環境はホストからは隔離されているため、SモードのWindows 10のホスト環境に対して何かをできるわけではありません。
Microsoft Storeで公開されている「Python 3.7」は、プログラミング言語「Python」をWindows 10(バージョン1809以降)に簡単に導入できるようにしたアプリパッケージです。Windows 10 バージョン1903からは、「python」とタイプするとMicrosoft Storeのダウンロードページを開くようになり、初心者でも簡単に導入できるようになりました。
SモードのWindows 10の場合は、Microsoft Storeで「Python 3.7」アプリを検索して、インストールすることができます。しかし、アプリを起動しようとしても、「MSVCP140.dllが見つからないため、コードの実行を続行できません」というエラーで終了してしまいます(画面7)。
通常、「MSVCP140.dll」のエラーは、「Microsoft Visual C++2015再頒布可能パッケージ」をインストールすることで解消できるのですが、「Microsoft Download Center」からパッケージをダウンロードしても、Sモードによりブロックされます。つまり、SモードのWindows 10は、Pythonプログラミングに利用できないということになります。
Windows 10 バージョン1903に対しては、コマンドプロンプト、Windows PowerShell、WSLに対応したマルチタブのコンソールアプリ「Windows Terminal(Preview)」(現状、正式版ではありません)がMicrosoft Storeで提供されています。
もうお分かりだと思いますが、SモードのWindows 10 バージョン1903にこのアプリをインストールすることは可能ですが、コンソールアプリとして利用することはできません。
一瞬、ウィンドウ枠が表示され、コマンドプロンプトやWindows PowerShellのシェルをアプリで開こうとしているように見えますが、すぐにクラッシュします(画面8)。クラッシュの理由がSモードであることは、OpenSSHサーバと同じように「Microsoft-Windows-CodeIntegrity/Operational」ログに記録されるイベントID「3077」のエラーで追跡することができます。
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2019-2020)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.