• セキュリティ
  • クラウド

intuneでの対話型アプリ配布

【概要】

セキュリティネットワーク構築の案件対応などで、PC端末側のキッティングも実施することがあります。
その端末管理を現在よく使われているAzureのintuneで対応することあったのですが、
intuneからは基本下記制限がかかるために、サイレントインストールできないアプリや、
powerhsell等でユーザに入力を求めるものは動作させることができないと思っていました。
・制約条件:intuneからのアプリインストールはサイレントインストールであること
以降は、そのサイレントインストールでは対応できないアプリやpowershellを配布できるようにさせた時の
作業メモとなります。

【Intuneからのアプリ配布】

そもそものIntuneからのサイレントインストールでのアプリ配布ですが、
大きく2種類あり、MSストアアプリ配布とwin32ファイル配布があります。
MSストアにないアプリや自作powershellはwin32を利用したintunewinファイルでの配布となります。
このintunewinファイルをintuneに登録することでPC端末側に設定することができます。
まずこのintuewin作成方法と、設定方法を説明します。

・intunewin作成方法

Microsoft Win32 コンテンツ準備ツールを利用して、該当ファイルをintunewinを作成します。
参考URL:Microsoft_Win32 アプリ コンテンツのアップロードを準備する
https://learn.microsoft.com/ja-jp/intune/intune-service/apps/apps-win32-prepare

Microsoft Win32 コンテンツ準備ツールを動かしてもらうと、下記コマンドプロンプトが起動しますので
それぞれに対して、値を入力してもらえばintunewinファイルが作成されます。

(terapadをintunewinするときの入力例)
Please specify the source folder:⇒インストールファイルがファイルパスを指定
Please specify the setup file:⇒インストールファイルを指定
Please specify the output folder:⇒作成されるintunewinファイルの出力先を指定
Do you want to specify catalog folder(Y/N)?⇒基本"n"を指定

・intunewin設定方法

作成したintunewinをintune側に設定させます。
基本的な部分はURL先に記載ありますので、ポイントとなる箇所を記載いたします。
参照URL:Microsoft_Microsoft Intune で Win32 アプリを追加、割り当て、および監視する
https://learn.microsoft.com/ja-jp/intune/intune-service/apps/apps-win32-add

主要設定箇所(sakuraエディタをインストールする場合の例):
インストールコマンド>sakura_install2-2-0-1.exe /SP- /VERYSILENT /NORESTART
アンインストールコマンド>C:\Program Files (x86)\sakura\unins000.exe /SILENT
検出ルール>ファイル C:\Program Files (x86)\sakura
依存関係>必要な場合設定

インストールコマンドと、アンインストールコマンドは基本サイレントインストールできるようにコマンドオプションを追加した形式で登録をしてください。
アンインストール側についても登録が必要ですが、アンインストールが不要な場合などはダミーコマンド等を
入力いただけたらと思います。

検出ルールは、インストールされたことを確認するためにファイルやディレクトリをパスをしてください。
また検出スクリプトを登録することもできますので、フラグファイルの有無でインストール有無を確認するなども設定可能です。
検出スクリプトサンプル:
フォルダが存在しない、または中にファイルが存在しない場合は成功
if (Get-ChildItem -Path C:\Test) {
Write-Output "フォルダ内にファイルが存在しません(成功:リターンコード0)"
exit 0
} else {
Write-Output "フォルダ内にファイルが存在します(失敗:リターンコード1)"
exit 1
}

依存関係は下記のようにAアプリ入れる前にBアプリを入れてからインストールさせたい時などに利用します。
Bアプリ→Aアプリ(Bアプリインストール済みでないとAアプリインストールさせない)

上記が基本的なアプリの展開方法ですが、対話型インストールが必要になる場合もあるかと思います。
その場合の対話型登録次項目で説明します。

【対話型インストールでのintuneからの配布方法】

上記で説明したintunewinでの配布方法ではサイレントインストールになるため、当初目的のサイレントインストール以外(対話型インストール)ができないです。そのため、いろいろとインターネットを調べた結果、
Microsoft 展開ツールキット内のserviceUI.exeを利用することで対話型にできることがわかり、動作検証をしました。以下でserviceUI.exe導入方法、登録するインストールコマンド例を説明します。

・対話型に対応させるためのseviceUI.exe導入

まず下記リンクのserviceUI.exeを利用します。
serviceUI.exe取得先:
Microsoft 展開ツールキットMicrosoft MDTで入手
端末へインストール後、以下のフォルダからserviceUI.exeを取得してください。
C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64

serviceUI.exeを利用したintunewinファイル作成:
(terapadをintunewinするときの入力例)
Please specify the source folder:⇒serviceUI.exeがあるファイルパスを指定
Please specify the setup file:⇒serviceUI.exeを指定
Please specify the output folder:⇒作成されるintunewinファイルの出力先を指定
Do you want to specify catalog folder(Y/N)?⇒"n"を指定
※作成された以降の登録作業は上記intunewin設定方法と同様ですが、
インストールコマンドは下記のようになります。

・登録するインストールコマンド例

このexplorer.exeを利用することでユーザプロセスを有効化させて対話型インストールコマンドを実施します。
インストールコマンドexe形式:
ServiceUI.exe -process:explorer.exe tpad1209.exe
インストールコマンドbat形式:
ServiceUI.exe -process:explorer.exe test.bat

【serviceUI.exe利用の注意点】

serviceUI.exeを利用したintunewinの動作確認した時ですが、
上記記載してたterapadと試験用に作ったtest.batファイルを別のアプリに登録したところ
test.bat側の動作がterapadのインストール動作となっていました。
・terapadアプリ登録⇒インストール動作:terapad
・test.batアプリ登録⇒インストール動作:terapad

原因:

アプリ登録周りを確認した結果,serviceUIを利用したintunewinのファイル名が
同じために上書き処理されたのではないかと想定しています。

アプリ動作が同じになった時のintunewinファイル名:
・terapadアプリ登録時のファイルServiceUI.intunewin
・test.batアプリ登録のファイル ServiceUI.intunewin
※アプリ登録上別でもintunewinが同一ファイル名だったため上書き処理がされたと想定。
 アプリ登録時の上書き処理実施のメッセージ等はないため注意が必要。

対応:

intunewinファイル名を明示的に分けることでアプリ動作はきちんと動くことは確認できました。
アプリ動作が正常に動作するときのintunewinファイル名:
・terapadアプリ登録時のファイルterapad.intunewin
・test.batアプリ登録のファイル test.intunewin

上記注意点はサイレントインストール時でもintunewinファイルが同一名(setup.exe等)の場合でも
発生する可能性があるためintunewinファイル名は重複しないように注意が必要です。

まとめ:

今回の動作確認をもって、サイレントインストール+対話型インストールがintuneから実施できること確認できました。ただintuneからのアプリ配布はもちろんのこと、windowsupdate制御の更新リングや
構成プロファイル適用など、端末管理を行うメニューはたくさんあります。
今後もintuneから端末制御機能の理解を深めていき、安心、安全な端末運用できるように精進したいと思います!

新着記事一覧へ