安全性と安定性の維持に最適な「Windows 10 Sモード」とは(その2)――Windows 10の“使える”機能と“使えない”機能:企業ユーザーに贈るWindows 10への乗り換え案内(54)
「Windows 10 Sモード」は、個人、企業、教育機関のPC向けに用意されたWindows 10のロックダウンモードです。前回に引き続き、Windows 10 Sモードのその他の制約について説明します。
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つのストアアプリ(無料)です。
●Windowsの機能
- Hyper-V(クライアントHyper-V)
- Windows Defender Application Guard(WDAG)
- OpenSSHサーバ
- Containers(Windows Serverコンテナ、Linuxコンテナ)
- Windowsサンドボックス
●ストアアプリ
- Python 3.7アプリ
- Windows Terminal(Preview)アプリ
Sモードだからといって、これらのWindows 10機能の有効化やアプリのインストールがブロックされることはありませんが、Sモードで利用できるかどうかはまた別の話です(画面1)。これらの機能やアプリとSモードとの互換性について公開されている情報はないようなので、Windows 10 Pro バージョン1803、1809、1903のSモードで実際に試してみました。
SモードとHyper-V:利用可能
Windows 10 Pro以上の64bit(x64)エディションでは、「クライアントHyper-V」とも呼ばれる仮想マシン環境がサポートされます。Hyper-Vのシステム要件さえ満たしていれば、SモードでもHyper-Vを有効化し、仮想マシンを作成して実行できます(画面2)。
ただし、SモードではWindows PowerShellが利用できないため、Hyper-V関連のコマンドレットを使用した詳細な管理はできません。GUI(グラフィカルユーザーインタフェース)管理ツールである「Hyper-Vマネージャー」による管理なら可能です。
SモードとWDAG:利用可能
「Windows Defender Application Guard(WDAG)」は、Windows 10 バージョン1709のEnterpriseエディションに初めて搭載された、「Microsoft Edge」の隔離されたブラウジング環境です。Windows 10 バージョン1803からはProエディション、バージョン1903からはEducationエディションでも利用可能になりました。本連載第51回では、WDAGの最新情報を紹介しました。
- Windows 10 バージョン1903リリースとWDAG最新情報(本連載 第51回)
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モードの環境にこれらのブラウザを導入する方法がないのです。
OpenSSHサーバ:利用不可
Windows 10 バージョン1803からは「OpenSSHクライアント」と「OpenSSHサーバ」が標準搭載されました。OpenSSHクライアントは既定でインストールされ、OpenSSHサーバはオンデマンド機能として追加することができます。詳しくは、本連載第45回で紹介しました。
OpenSSHクライアントが標準で利用でき、OpenSSHサーバがオンデマンド機能として追加できることは、Sモードでも変わりません。OpenSSHサーバ(sshd)もサービスとして動作しているように見えます。OpenSSHクライアント(ssh.exe)からローカルのOpenSSHサーバに接続を開始すると、認証までは進みますが、その後、すぐにウィンドウは消えてしまいます(画面4)。
画面4 SモードでもOpenSSHサーバは正常に動いているように見えるが、認証成功後に「cmd.exe」シェルのロードがブロックされ、すぐに切断されてしまう。つまり、SモードではOpenSSHサーバは事実上、利用できない
何が起きているのかというと、OpenSSHサーバ側ではコンソールウィンドウホスト(conhost.exe)がコマンドプロンプト(cmd.exe)をロードしようとして、Sモードによりブロックされているのです。その様子は、イベントログの「Microsoft-Windows-CodeIntegrity/Operational」ログに記録されるイベントID「3077」のエラーで追跡することができます。
なお、SモードではコマンドプロンプトやWindows PowerShellを利用できないため、OpenSSHクライアントは「ファイル名を指定して実行」などからコマンドラインを直接実行する必要があります。使い勝手は悪いですが、外部のSSHサーバへの接続には利用できるはずです。
SモードとDocker Desktop:利用不可
本連載第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モードでは利用できないということもあります。
SモードとWindowsサンドボックス:利用可能
Windows 10 バージョン1903の64bit(x64)版では、「Windowsサンドボックス」というWindows 10の隔離環境が新たにサポートされました。
- 新しい軽量な隔離環境、「Windowsサンドボックス」とは?(本連載 第52回)
Sモードでは、Windowsサンドボックスを有効化し、サンドボックス環境を起動することができました(画面6)。サンドボックス環境の中では、コマンドプロンプトを開くこともできます。これは、SモードのWindows 10で利用可能な唯一のシェル環境といえるかもしれません。しかしながら、サンドボックス環境はホストからは隔離されているため、SモードのWindows 10のホスト環境に対して何かをできるわけではありません。
SモードとPython 3.7:利用不可
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プログラミングに利用できないということになります。
SモードとWindows Terminal(Preview):利用不可
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.
関連記事
- さようならSAC-T! これまでの、これからのWindows 10の更新チャネルをざっくりと解説
2019年春にリリースされるWindows 10の新バージョンから、ブランチ準備レベル「半期チャネル(対象指定)」が廃止されることが発表されました。これにより、どのような影響があるでしょうか。Windows Update for Business(WUfB)を利用していない限り、何の影響もないでしょう。WUfBを利用しているなら、更新後に設定を確認しておきましょう。 - 次期Windows 10最新動向:リリース秒読みの「19H1」はこう変わる
間もなくリリースされるWindows 10の新しい機能アップデート「19H1」。それに実装される新機能をまとめてみた。また、同時に変更となるライフサイクルなどについても解説する。 - 複雑怪奇? Windows 10の大型更新とサポート期間を整理する
Windows 10では従来のWindows OSと異なり、年2回、大型アップデートの提供が行われるようになった。それに伴い、サポート期間もバージョンごとに設定されるなどの変更が行われており、かなり複雑なものとなっている。本稿では、アップデートの提供タイミングならびにそのサポート期間などを整理する。 - Windows Update for Businessってどうなったの?
Windows 10の登場ですっかり変わってしまったWindows Update。IT管理者の多くが戸惑っているに違いありません。「Windows 10 バージョン1511 ビルド10586」に合わせ、「Windows Update for Business」が利用可能になりました。しかし、筆者を含む多くの人が想像していたのとは違い、SaaSタイプのサービスではありませんでした。 - Windows 10の更新プログラム適用で地雷を踏まないためのWindows Update運用法
Windows Updateによるアップデートの適用は、場合によっては不具合を起こす可能性もある。アップデートによって不具合が発生しないことを確認してから適用するとよい。そのためのWindows Updateによる適用を延期する方法を紹介しよう。