労務の可視化・監査対応の一環で、PCログ収集ツール MITERAS仕事可視化(パーソルビジネスプロセスデザイン提供)を導入することになった。
MITERASは、対象PCに専用エージェントを入れると、PCの起動・終了や操作/無操作の状況を自動で収集し、勤怠申告との乖離チェックなどができるSaaSだ。導入自体はエージェントを配るだけ……なのだが、MDM経由の配布手順はベンダー側で用意されておらず、各社で自力で組む必要があるのが実情だった(この時点で若干いやな予感がする)。
自分が支援している会社ではWindowsをIntune、macOSをJamf Proで管理しているので、この記事では Windows × Intune のパターンをまとめる。macOS × Jamf 版は別記事で書いているので、Macメインの人はそっちを見てほしい。
結論から言うと、配布そのものは難しくない。本当にハマるのは「Intune上はインストール成功なのに、MITERAS側にログが出てこない」というその先のフェーズだ。そこも含めて書く。
- ▶ MSIを
.intunewinに変換してIntuneに登録する具体的な手順 - ▶ インストールコマンド・アンインストールコマンド・検出ルールの正しい設定値
- ▶ Windows実機がないMac派向けの
.intunewin変換の逃げ道 - ▶ 「インストール成功なのにログが出ない」ときの切り分けチェックリスト
▼全体の流れ
やることは大きく4ステップ。
- ▶ STEP 0. MSIから識別情報(ProductCodeなど)を抜く
- ▶ STEP 1. MSIを
.intunewin形式に変換する - ▶ STEP 2. Intuneに Win32アプリとして登録する
- ▶ STEP 3. テスト配布して、インストール&ログ取得を確認する
▼STEP 0. MSIから識別情報を抜いておく
後のIntune設定(アンインストールコマンド・検出ルール)で MSIのProductCode が必要になるので、先に抜いておく。
- ▶ Windowsの場合:Microsoftの
Orca(Windows SDK付属)でMSIを開き、Propertyテーブルを見る - ▶ Mac / Linuxの場合:
msitoolsを入れてmsiinfoで抜ける
抜けてくる主な値(下は Ver2.7.1 の例。バージョンが変われば当然変わるので、必ず自分のMSIから確認すること):
| 項目 | 値(Ver2.7.1の例) |
|---|---|
| ProductName | MiterasWVAgent |
| ProductVersion | 2.7.1 |
| ProductCode | {38535567-A6B8-44D1-8639-0EE7C0DF79BA} |
| UpgradeCode | {C72C3BF1-542E-464A-836C-F038ECF8BA27} |
依存関係として .NET Framework 4.5.2 が必要だが、Windows 10/11なら標準で入っているので通常は気にしなくていい(かなり古い端末が混ざっている場合だけ一応注意)。
▼STEP 1. MSIを .intunewin に変換する
IntuneのWin32アプリは、MSIやEXEをそのまま登録できず、.intunewin という専用形式にパッケージし直す必要がある。中身は「ソースをZIP化してAES-256で暗号化したもの+メタデータ」という構造だ。
王道:Windows端末で公式ツールを使う
Microsoftが配布している Win32 Content Prep Tool(IntuneWinAppUtil.exe)を使う。GitHubの microsoft/Microsoft-Win32-Content-Prep-Tool からダウンロードできる。
ソースフォルダにはそのMSIだけを入れておくこと。余計なファイルがあると一緒に固められる。
Windows実機がない場合(Mac派の人向け)
IntuneWinAppUtil.exe は Windows専用だ。手元がMacしかないと詰む。その場合の選択肢はこう。
- ▶ Windows VM / 検証機を1台立てて公式ツールを回す(一番確実)
- ▶ クロスプラットフォーム対応のOSS変換ツールを使う(Go製の
content-prep系など、.intunewinを生成できるものがいくつか存在する)
.intunewin は暗号化方式(AES-256-CBC+HMAC-SHA256)が公式と一致していないと、端末側の復号でコケてインストールに失敗する。必ず検証機で「配布→インストール成功→検出」まで通ることを確認してから本番に使うこと。心配なら、生成物を一度復号し直して元のMSIとバイト一致するか確認しておくと安心。
▼STEP 2. Intuneにアプリを登録する
Intune管理センター → アプリ → Windows → 追加 → アプリの種類「Windows アプリ (Win32)」 で進む。
① アプリ情報
- ▶ 作成した
.intunewinをアップロード - ▶ 名前・発行元などは、MSIのメタデータから自動で読み込まれる(発行元にベンダー名が入っていれば、中身がちゃんと認識されている証拠)
② プログラム
ここが配布の心臓部。
| 項目 | 設定値 |
|---|---|
| インストールコマンド | msiexec /i "MiterasWVAgentSetup_Ver2_7_1_1.msi" /qn |
| アンインストールコマンド | msiexec /x "{38535567-A6B8-44D1-8639-0EE7C0DF79BA}" /qn |
| インストールの処理 | システム(デバイス単位で入れる) |
/qn は完全サイレント。アンインストールは STEP 0 で抜いた ProductCode を使う。
この
/qn が、後述の「ログが取れない問題」の伏線になる。覚えておいてほしい。
③ 必要条件
- ▶ OSアーキテクチャの確認:「いいえ(すべてのシステムに許可)」でOK。無理に絞る必要はない
- ▶ 最小なOS:
Windows 10 1607を選んでおけば、現行のWin10/11がまるっと対象になる - ▶ ディスク領域 / 物理メモリ / 論理プロセッサ / CPU速度:すべて空でOK
必要条件を埋めると、条件を満たさない端末が勝手に対象外になって「なんで入らないの?」の原因になる。むしろ入れないほうが安全。
④ 検出規則
「規則の形式」のプルダウンには「手動」と「カスタム検出スクリプト」しか出ないが、MSI用の検出は 「手動で構成する」のまま、下の「+追加」から 設定する。
- ▶ 規則の種類:MSI
- ▶ MSI製品コード:STEP 0 のProductCodeが自動で入る(緑チェックが付けばOK)
- ▶ MSI製品バージョンの確認:いいえ(まずはバージョン縛りなしで十分)
これで「ProductCodeが存在する=インストール済み」と判定される。ファイルパスやレジストリで頑張る必要はない。
⑤ 依存関係 / ⑥ 置き換え
今回はどちらも何も触らずスキップ。
⑦ 割り当て
まずはテスト用のグループを1個だけ「必須」でアサインして、動作確認してから広げる。
⑧ 確認と作成
内容を確認して作成。アップロードに数分かかる。
▼STEP 3. 配布・インストールを確認する
作成後、テスト端末に降りてくると、アプリの 概要 → デバイスの状態 で結果が見える。「インストール済み」がカウントされ、「失敗」が0なら、Intune的な配布は成功だ。
端末側で詳しく見たいときは、このログを確認する。
ここまでで「MSIが端末に入る」ところまでは完了。だが、本番はここから。
▼最大のハマりどころ:「インストール成功」なのにログが出ない
ここが本題だ。
Intuneが保証してくれるのは「MSIを実行して正常終了した」ところまで。その先の「エージェントが常駐して、サーバにログを送って、マスタと突合されて画面に出る」は、また別の話だ。
実際、Intune上は2台ともインストール済み・失敗0なのに、MITERASの個人画面のPCログ列がまるっと空、という状態が起きる。切り分けのチェックリストを、疑わしい順に置いておく。
① エージェントが本当に常駐起動しているか(最有力)
/qn のサイレントインストールだと、インストールは完了しているのにエージェントの初回起動フックが走っていないことがある。
- ▶ タスクマネージャー /
services.mscに Miteras系のプロセス・サービスがいて「実行中」か確認 - ▶ いなければ、その端末を再起動 or 対象ユーザーで再ログオン してみる
macOS側の導入でも「起動用スクリプトを一緒に配らないとログが取れなかった」というケースがある。「入れただけでは動き出さない」パターンはWindowsでも十分あり得るので、まずここを疑うのが吉。
② マスタの登録キーと端末のログインアカウント名が一致しているか
MITERASは、管理画面でユーザーを登録すると、そのキー(ログインアカウント名やメールアドレス)とエージェントが送ってくる識別子を完全一致(exact match)で突合してログを紐づける。
ここでよくやるのが、Windowsのログインアカウント名の表記ゆれ。マスタ側が「ローマ字」なのに端末の %USERNAME% が「漢字」だったり、その逆だったり。1文字でも違うと紐づかない。
- ▶ 端末で
echo %USERNAME%した値 - ▶ MITERASマスタに登録した値
この2つがドンピシャ一致しているかを確認する。フリートが大きいほど、この表記ゆれは事前に棚卸ししておく価値がある。
③ エージェントが正しいテナントを向いているか
トライアル環境と本番環境が分かれている場合など、エージェントの接続先テナントがずれていると、ログは送られているのに「見ている画面には出ない」状態になる。
MITERASの管理画面にある「エージェントのダウンロード / 配布手順」に、テナント紐付けの方法(専用インストーラなのか、企業コードや設定ファイルを同梱するのか)が書かれているはずなので、そこと配布物が一致しているか確認する。
④ PC・アカウントを共有していないか
ログインアカウントやPC自体を複数人で共有している環境だと、正常にデータが取れないことがある。検証機を使い回していると、ここで足をすくわれる。
一番速い切り分け方
- 手動だと出る → 原因はサイレント配布時の設定/起動まわり。Intuneのインストールコマンドに引数を足すか、設定ファイルを同梱して再パッケージすれば解決
- 手動でも出ない → マスタ突合 or テナント設定側の問題
▼まとめ
- ▶ Intuneの配布自体は素直。MSIを
.intunewinにして、検出ルールをMSI(ProductCode)にすれば通る - ▶
.intunewin変換の公式ツールは Windows専用。Mac派はVMかOSS変換ツールを用意する - ▶ 検出ルールは MSI ProductCode一発でよい。必要条件は最小OSだけ入れて他は空
- ▶ 本当の勝負はインストールの後。「Intune成功 ≠ ログ取得」。エージェントの常駐起動・マスタの表記ゆれ突合・テナント向き先、この3つを重点的に確認する
- ▶ ベンダーはMDM別の配布手順を用意していないので、検証機で回して潰すのが結局いちばんの近道
MITERASに限らず、この手の「エージェントを配って初めて価値が出る」系のツールは、配布フローよりも配布後の突合と常駐確認でハマりがちだ。同じところで悩んでいる情シスの参考になれば。
※本記事の設定値(ProductCode等)はエージェント Ver2.7.1 時点のもの。バージョンやテナント構成により異なる場合があるので、実際の値は必ずお手元のMSI・管理画面で確認してください。
📅 30分無料相談、受け付けています
「MDM経由の配布手順がベンダーから用意されてなくて、自力で組むしかない」——そういう”公式手順がない系”のツール展開でつまずいたら、お気軽にどうぞ。IntuneもJamfも、配布設計から一緒に組みます。
📅 30分無料相談を予約する →