Intuneでlog analytics agentを配布して、従業員のPC起動時間をモニタリングする。

3 min read読了の目安(約2900字

実現したい事

Intuneで全社員のWindowsPCにlog analytics agentを配布する!(with Azure)
Azure モニターでいつでもWindowsログを見れるようにする。

前提

著者:Webエンジニア(フロントエンド、サーバーサイド)情シスほぼ未経験
想定読者:インフラ初心者

前知識

Intune

Microsoft 365(旧Office 365)のMDM(端末管理ソリューション)

Apple製品の場合、競合はjamf?

Log Analytics

agent

Log Analytics エージェントは、Microsoft Monitoring Agent (MMA) または OMS Linux エージェントとも呼ばれる。端末のログをクラウド(Azure)に送ってくれる。
Microsoft Monitoring Agentとも

Azure Monitor

azure -> Log Analytics ワークスペース でワークスペースを構成
azure -> モニター でモニタリング

実践的な情報

Intune

Intune管理下のWindowsは
microsoft intune management extension
というサービス(アプリケーション?)がインストールされる。

管理画面はMicrosoft Endpoint Manager管理センター

Azure AD参加済みのデバイスをIntune配下に置くためには、、
Intune自動加入に設定して、一度AAD抜けて、再度参加させるのが楽(らしい)

Log Analytics

agent

webにあるバイナリはMMASetup-AMD64.exe(64bitの場合)

https://go.microsoft.com/fwlink/?LinkId=828603
ダウンロードできるのはMMASetup-<platform>.exe
こいつはセットアップファイル群を自己解凍で固めたもの
(解凍後自動コマンドが仕込まれている?)

コマンドインストールしたい。

自己解凍exeではなく、本丸のsetup.exe等が必要

MMASetup-<platform>.exe /c /t:<Full Path>

出来たファイル群のフォルダに移動して

setup.exe /qn NOAPM=1 ADD_OPINSIGHTS_WORKSPACE=1 OPINSIGHTS_WORKSPACE_AZURE_CLOUD_TYPE=0 OPINSIGHTS_WORKSPACE_ID="<your workspace ID>" OPINSIGHTS_WORKSPACE_KEY="<your workspace key>" AcceptEndUserLicenseAgreement=1

コマンドアンインストールしたい。

MSのドキュメントによると

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/agent-manage

プロンプトで、%WinDir%\System32\msiexec.exe /x <Path>:\MOMAgent.msi /qb を入力します。

IntuneでMMASetup-AMD64.exeを配布したい。

任意のWindowsアプリを配布する為には、.intunewin形式のバイナリに固めてIntuneに登録。

.intunewinってどうやって作んの?

https://github.com/Microsoft/Microsoft-Win32-Content-Prep-Tool
IntuneWinAppUtil.exe

本当に読むべきドキュメントは↓

https://docs.microsoft.com/ja-jp/mem/intune/apps/apps-win32-add

自己解凍+自動実行exeであるMMASetup-AMD64.exeは、このままでは配備できない。
先述のコマンドインストール可能なexeぶっこぬきをする。

githubから拾ってきたIntuneWinAppUtil.exeを実行しCUIで変換対象及び出力先を指定する。
か、コマンドラインオプション付きで実行

ーc:変換対象ファイルがあるフォルダを指定
-s:変換対象セットアップファイルの指定
-o:.intunewinファイルの出力先フォルダ

指定したフォルダに .intunewinファイルができている。

いざ配布

この.intunewinファイルをIntuneの管理画面で指定する。
その際のIntuneで以下のようなことを設定

インストールコマンド

下記 <your workspace ID> と <your workspace key> を埋める。

setup.exe /qn NOAPM=1 ADD_OPINSIGHTS_WORKSPACE=1 OPINSIGHTS_WORKSPACE_AZURE_CLOUD_TYPE=0 OPINSIGHTS_WORKSPACE_ID="<your workspace ID>" OPINSIGHTS_WORKSPACE_KEY="<your workspace key>" AcceptEndUserLicenseAgreement=1

アンインストールコマンド

プロンプトで、%WinDir%\System32\msiexec.exe /x <Path>:\MOMAgent.msi /qb を入力します。

これどうやってInutuneで再現する?
MsiExec.exe はパスが通ってると考えてOK
指定すべきコマンドは
MsiExec.exe /x MOMAgent.msi /qb

アプリ検出定義(ファイルパス、ファイル名、レジストリキー)

ファイル存在
パス:C:\Program Files\Microsoft Monitoring Agent\Agent
ファイル:MonitoringHost.exe

無事log analytics agent配れたからAzureで管理したい

Log Analytics ワークスペースでワークスペースを作成(米国東部が安い?)
エージェント構成でWindowsイベントログにWindows イベントログの追加(System)
ログクエリ作成画面で

Event | Where Source == "Microsoft-Windows-Kernel-Power" などとする。

(手元の環境では7001や7002は取れなさそうなので、頑張ってKernel-Power関連を見る)
ログの保存期間は”使用料と推定コスト”メニューからデータ保有期間を選択してする。