Windows10でWindows ICDを使って埋め込みシェル起動ツール(Shell Launcher)を設定する方法
Windows10で埋め込みシェル起動ツール(Shell Launcher)は使用できるのは、「Windows10 Iot Enterprise」と、「Windows10 Enterprise」だと思っていましたが・・・ どうやら他のエディションでもいける雰囲気です。ロックダウン機能の一部は下のエディション等でもいけるよう。
設定方法については、powershellで行う方法と、ロックダウンマネージャ(Embedded Lockdown Manager)に代わるツールとして、Windows ICD(Windowsイメージングおよび構成デザイナー)にて、同様にGUI設定可能である。
ここでは、Windows ICD(Windowsイメージングおよび構成デザイナー)にてパッケージによる設定を紹介する。
※PowerShellでShell Launcherを設定する方法
Windows ICDを使って設定を行う前に埋め込みシェル起動ツール(Shell Launcher)を有効化する必要がある(コマンドをインストールする) ⇒ 埋め込みシェル起動ツールを使用する方法
★埋め込みシェル起動ツール(Shell Launcher)とは
埋め込みシェル起動ツール(Shell Launcher)とは、eshell.exeと呼ばれるプログラムのことである。eshell.exeプログラムは、その内部に別の プログラム(例えば、cmd.exeなど)を埋め込むことが可能。eshell.exeを起動すると、その埋め込まれた別のプログラムが起動する。 尚、eshellの一番の特徴は、プログラムを停止させても自動で再度起動がかかることである。なので、使用者に強制的に何かのプログラムを 実行させたい場合などは、このeshellを使用すれば大丈夫である。
その他の使用方法としては、Windowsログイン後にexplorer.exeを起動させず、eshell.exeを起動させてしまえば、使用者は eshell.exeに埋め込んだプログラムしか使用出来ない風を装うことが可能。実際はタスクマネージャ等を起動させれば他のプログラムを 実行することは可能。
★埋め込みシェル起動ツール(Shell Launcher)の使用例(cmd.exeを埋め込んだeshell.exeを起動した場合)
C:\windows\system32内に、eshell.exeがあるので、それを起動する。
cmd.exeが起動するが、×で閉じても、すぐに同じcmd.exeの起動がかかる。
★埋め込みシェル起動ツール(Shell Launcher)の設定方法(Windows ICDにて設定)
※プロビジョニングパッケージを使用して、設定を行う。プロビジョニングパッケージの作成については以下を参考に。
1、Winodws ICDを起動し、プロビジョニングパッケージのプロジェクトを作成する。(エディションは、ALL Windows desktop editionを選択する)
2、設定項目が表示されたら、全ての設定になっていることを確認。
3、実行時の設定⇒SMISettings⇒ShellLauncherを選択すると、2つの設定項目が表示される。
4、まずは、上のDefaultReturnCodeActionを設定する。ここでは、プログラムを強制再起動させたいので、0を指定する。既定値なので、空で良い。
※プログラム停止時の動作設定。0:プログラム再起動、1:PC再起動、2:PCシャットダウン、3:何もしない
5、次に、eshellに埋め込むプログラムを設定する。ここでは、mstsc.exe(リモートデスクトップ接続)を設定する。
6、設定終えたら、ファイルメニュー⇒保存をする。
7、以下の画面が出る場合もあるが、OKを選択。
8、次に、PCに適用できるようにパッケージングビルドを行う。上のエクスポート⇒プロビジョニングパッケージを選択。
9、パッケージ名や所有者等の情報を入力して、次へを選択。
10、パスワード等の情報が必要な場合は、暗号化パスワードを入力する。今回は設定する。
11、パッケージの保存先を指定して次へ。
12、最後にビルドを行う。
13、作成完了。尚、ppkgファイル(パッケージファイル)が適用ファイル。catファイルも出来るがこちらは今回は不要。
※1、適用する際は、パッケージファイルをダブルクリックで良い。暗号化がある場合はパスワードを入力し、注意が出ますが、そのまま追加する。
★適用されてるか確認
※ファイル名を指定して実行で、eshellと入力。すると、リモートデスクトップ接続が起動する。×で閉じても、再度、リモートデスクトップ接続が起動する。
※eshellを止める方法は、PC再起動か、タスクマネージャからeshell.exeのプロセスを強制終了。
※別の設定方法(コマンドで行う)
※PowerShellでShell Launcherを設定する方法
★埋め込みシェル起動ツール(Shell Launcher)を、ログイン時に強制起動させる方法
ログイン時にデスクトップ画面以外のプログラムを起動させる方法を参考にして、 ログイン時に起動するプログラムをeshell.exeにすれば良い。今回の埋め込みはmstsc.exeなので、ログイン時に以下の ような画面のみが起動する。もちろん×で閉じてもeshellの効果により、mstsc.exeが再度起動がかかる。
ということで、埋め込みシェル起動ツールを使用すると、見た目的に強制的にプログラムを使用させることが可能となる。
★プロビジョニングパッケージで適用した場合に設定を戻す方法。
1、プロビジョニングパッケージを削除する ⇒ プロビジョニングパッケージ削除方法
2、埋め込みシェル起動ツールを元の設定に戻す(power shellで行う)
以下コマンド(例:mstsc.exeを埋め込む場合)-----------
$ShellLauncherClass = [wmiclass]"\\localhost\root\standardcimv2\embedded:WESL_UserSetting"
$ShellLauncherClass.SetDefaultShell("cmd.exe", 0)
以上ここまで-----------