こんにちは
先日Intuneを利用してWindows10端末にインストールされたWin32アプリの情報を取得できることを知りました!
ということで今回は
「Intuneを利用してWindows10端末にインストールされたアプリケーション情報を取得」
という部分にチャレンジしてみたいと思います。
- 前提
まずIntuneを利用してWindow10端末の情報を取得するには以下の状態のどれかになっていることが必要です。
- AzureADJoined+Intune登録
- HybridAzureADJoined+Intune登録
- AzureAD Registered+Intune登録
1,2,3のどれになっているかで取得できる粒度に差が出ます。
また、どれを選択したかによって下記のIntune管理拡張の前提に差がでます!
※3だとほぼ無理!みたいなパターンがあるのでご注意を
また、今回IntuneよりPowershellの実行を実施するため以下も追加で必要です。
・Windows10のエディションがHome以外
・AzureADJoined
※この時点で上記の2,3がだめなんですね・・・笑
2は方法次第でやれそうな気もする・・・・
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021/4/15追記
上記の3でも稼働しました!
やはり下記URLの前提をちゃんと確認する必要がありそう
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
さらにWin32アプリ(デスクトップにてmsiにてインストールされたアプリケーション)の管理には追加で以下が必要です。
①会社所有のデバイスである
②Intune管理拡張が対象デバイスに導入されている
細かい前提や取得対象はこっちを見てください
検出されたアプリ - Microsoft Intune | Microsoft Docs
今回は
- AzureADJoined+Intune登録
にて検証を実施しており、Windows10のエディションはProを利用しています。
※サポート範囲外のWindows10はもちろんだめです笑
また、上記の①、②について
①は以下の画面の所有者が会社になっているかどうかということです。
②はIntune管理拡張が導入されている必要があります。
これに非常に悩んだのですが、上記のDocsによると
以下のポイントで自動的に導入されるらしい・・・・・
1.Intune管理拡張機能の前提条件が満たされる
2.Powershellスクリプト or Win32アプリがユーザーやデバイスに割り当てられる
なお1の前提条件っていうのが下記です。※これが結構細かいので確認必須です!
Microsoft Intune で Windows 10 デバイスに PowerShell スクリプトを追加する - Azure | Microsoft Docs
ということなので、今回はPowershellスクリプトをIntuneから実行してIntune管理拡張とやらが入っているか確認してみます。
ちなみに、アプリケーションの収集はサイクルがあって下記くらいの時間がかかる模様!気長にやらないといけない!!!笑
- 設定方法
今回はAzureADJoined+Intune登録された端末を利用します。
※方法不明だ!!って方いたらコメントください。ご相談のれるかもしれません
まずはMicrosoft365管理センターよりMicorosoft Endpoint Manager管理センターにアクセス
デバイスをクリック
スクリプトをクリック
追加をクリック
Windows10をクリック
配布するスクリプトタスクのタイトルを入力し次へ
※今回はPowershell Test Deployとしています。
今回はTestDeploy.ps1ってファイルを対象にしています。
ちなみに中身はこんな感じ
Cドライブ直下にtemp2ってフォルダを作成するだけ!笑
その他はいいえの状態で次へをクリック
※作成するスクリプトによっては上記の「はい\いいえ」を適切に変えないと問題おきるのでご注意を!
グループを追加をクリック
スクリプトが実行されるべきユーザーがメンバーのグループを選択
※ここで指定するメンバーは以下のデバイス情報の下記ユーザーが含まれているグループです。
グループの追加を確認したら次へをクリック
情報を確認して追加をクリック
これで設定完了
スクリプトが実行されたか確認するには作成されたスクリプトタスクをダブルクリック
各デバイスでの実行状態が表示されます。
- クライアント側での確認方法
クライアントOS側でIntune管理拡張が展開されているか確認してみます。
スタートから設定をクリック
アカウントをクリック
職場または学校にアクセスするをクリックし、接続したアカウントをクリック
情報をクリック
ここでアプリケーションの導入が確認できます!
手動で同期とかしたい場合もこの中の同期ボタンをクリックします。
なお、ディレクトリとしては以下のパスにログファイルが展開されています。
C:\ProgramData\Microsoft\IntuneManagementExtension\Logs
- 確認方法
管理ポータルのデバイスから対象のデバイスを選択し「検出されたアプリ」の中に収集されます。Win32アプリは24時間ごとに収集の模様!
※Intune管理拡張が入っていないとモダンアプリ(UWPアプリ)しか表示されないのでご注意を
24時間後に再度確認すると赤枠が増えていた!
Visual C++やPS Remote Play、Windows Deployment Toolsがインストールされていることが確認できます!
WireSharkとかも入れてるんだけど出てこない・・・・一体どういう範囲分けなのだろう???
ここは確認できたら情報アップデートします。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021/4/13追記
確認できた!
msi形式でのインストールは収集の対象だがexeでインストールしたアプリケーションはサポート外とのこと
全部MSIってパターンじゃないと完全には収集できないようだ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- おまけ
Intune管理拡張をダウンロードできないケースにはこんな内容があるらしい!
・デバイスがAuzreADに参加していない(そのほか前提を満たしていない)
・ユーザーまたはデバイスが属するグループにPowershellスクリプトやWin32アプリが割り当てられていない
・デバイスがIntuneサービスにチェックインできない。例えばインターネットアクセスしたりWindowsプッシュ通知サービスにアクセスできない
※プロキシ通さないといけない環境とかは要注意!
おそらくWinInetではなくWinHttpでアクセスしているはずなので、確認が必要!
ここを確認したい場合はスクリプト作成されている方がいるのでぜひ参照を
Test-DeviceRegConnectivity.ps1っていうスクリプトでデバイスからの一部URLへのアクセス可否を参照してくれます!
GitHub - Azure-Samples/TestDeviceRegConnectivity
・デバイスがSモードである(Intune管理拡張はSモード非サポートなんだそうだ!)
また、割り当てたPowershellスクリプト以下のタイミングで稼働するらしい!
②スクリプトを変更し、アップロードし、ユーザーまたはデバイスにそのスクリプトを割り当てるとき
どうやって確認してるのかな~と思って調べたところどうやらIntune管理拡張は対象のWindowsデバイスのサービスとして稼働しているようだ!
↓これね!
このサービスで1時間に1回Intuneでスクリプトやポリシーに変化があったかチェックしているらしい!
※これが手動とかになっていてサービスあがっていないと正しくうごかないことがあるかも!
ちなみにログはC:\ProgramData\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.logに出力されています。
下記赤枠を見るとPowershellを実行しているのがわかります。
スクリプト実行自体はagentexecutor.exeが引数に対象のスクリプトを指定して実行しているみたいですね!
ログ見るときは前回記載した通り、CMTraceを利用しています。
下記です。
- まとめ
Windows10デバイスにインストールされたWin32アプリの情報がとれるには取れました。
ただ表示されなかったアプリケーションもいたのでこの辺がよくわからん!
ってことでこのあたりもう少し追いかけて情報アップデートしようと思います。
- 最後に!
Twitterでも情報発信したいと思いますので、興味があったらフォローしてください!
*1:2021/4/13に上記に追記、情報アップデート