こんにちは。
ヘルプデスクの田村です。
Microsoft Intune ではデフォルトでデバイスのインベントリ情報などを収集する機能があり、Intune 管理センター (https://intune.microsoft.com) で各デバイス情報を参照することが可能です。
ただ、必要な情報がすべて収集されているとは限らないため、日々の運用の中でお客様のご要望に応える際に不都合が生じることも多いかと思います。
今回は Intune の「修復」という機能を利用して、Intune 管理下のデバイスのレジストリ設定が想定した値になっているかを確認する方法をご紹介します。
[補足]
「修復」は従来「プロアクティブな修復」と呼ばれていたもので、以前ご紹介した「エンドポイント分析」の機能のひとつとなります。ご興味があれば下記の記事も参照してください。
[エンドポイント分析を使ってみる]
Intune の「修復」はデバイスで問題が発生した際に、予め登録しておいた「検出スクリプト」で問題を検出し、「修復スクリプト」で問題個所を修復することができる機能です。
本機能のコンセプトとしては、サポート部門への問合わせを削減することを目的として実装されています。
詳しくは、以下を参照してください。
[修復]
今回は、各デバイスで管理者が本来想定している値がきちんと設定されているかを確認したいというシナリオで、修復機能の「検出」部分に着目し、以下のレジストリ情報をそれぞれ確認してみたいと思います。
・Edge 自動更新の無効化
パス : HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\EdgeUpdate
値の名前 : UpdateDefault
値の種類 : REG_DWORD
想定する値 : 0
・Microsoft365 Apps 更新チャネル
パス : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration
値の名前 : CDNBaseUrl
値の種類 : REG_SZ
想定する値 : http://officecdn.microsoft.com/pr/b8f9b850-328d-4355-9145-c59439a0c4cf (半期チャネル プレビュー)
検証のため、2 台のデバイスを用意し、それぞれ以下の設定とします。
・Edge 自動更新の設定
デバイス A : 問題なし
デバイス B : 問題あり
・Office 更新チャネルの設定
デバイス A : 問題あり
デバイス B : 問題なし
それぞれの情報を検出する以下のスクリプトを作成します。
・EdgeUpdate_Detect.ps1
if ((Get-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\EdgeUpdate").UpdateDefault -eq "0" )
{
Write-Host
"OK"
exit 0
}
else{
Write-Host
"NG"
exit 1
}
・officeCDN_Detect.ps1
if ((Get-ItemProperty -Path "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration").CDNBaseUrl -eq "http://officecdn.microsoft.com/pr/b8f9b850-328d-4355-9145-c59439a0c4cf" )
{
Write-Host
"OK"
exit 0
}
else{
Write-Host
"NG"
exit 1
}
[注意]
スクリプト作成時は「UTF-8」形式の .ps1 ファイルとして保存してください。
その他スクリプトの要件については以下を参照してください。
[修復 - スクリプトの要件]
スクリプトを作成したら、Intune 管理センターで登録操作を実施します。
Intune 管理センターより、[デバイス] – [修復] を選択します。
「+スクリプトパッケージの作成」をクリックします。
「名前」、「説明」、「公開者」 (名前以外は任意) を入力し、[次へ] をクリックします。
「検出スクリプト ファイル」のフォルダボタンを押下し、対象のスクリプトをアップロードしたら、[次へ] をクリックします。
[注意]
32bit アプリのレジストリ値を検出対象とする場合は、「64 ビットの Powershell でスクリプトを実行する」を「はい」にしないと、正しく検出されないことに注意してください。
「スコープ タグ」は何も設定せずに、[次へ] をクリックします。
作成したスクリプトをグループに割り当てるため、「+含めるグループを選択」をクリックします。
レジストリ情報を確認したいグループ (デバイス、もしくはユーザーグループ) を選択して、 [選択] をクリックします。
指定したグループが割り当てられたことを確認します。
「スケジュール」の [毎日] をクリックします。
「頻度」を [毎時] 、「間隔」を [1] (1時間毎) とし、[適用] をクリックします。
必要に応じて、フィルター、除外したいグループの設定などを変更し、 [次へ] をクリックします。
割り当てや設定値を確認し、 [作成] をクリックします。
もう一つのスクリプトも、同様の手順で登録します。
以上で、スクリプトの作成と Intune への登録は完了です。
これで、デバイスが Intune との通信後、スクリプトが実行されます。
念のため対象のデバイスを再起動し、ユーザーがサインインした状態にしておきます。
検出結果を確認していきます。
(なお、検出結果が表示されるまでは最低でも 1 時間程度かかるため注意してください。)
Intune 管理センターより、[デバイス] – [修復] を選択します。
作成および割り当てを実施したスクリプトをクリックします。
「デバイスの状態」をクリックします。
「検出の状態」列で、デバイス毎の検出結果 (問題あり or なし) を確認できました。
・Edge 自動更新の設定
・Office 更新チャネルの設定
このように検出した「問題あり」のデバイスを、別途修復スクリプトを用意して、先ほどと同様に登録と割り当てを行うことで問題の解消を行うことが可能です。
今回は Intune の修復機能のうち「検出」部分にフォーカスしてご紹介しました。
実際に運用の現場では自組織の各デバイスの様々な情報を取得し確認をしたいといったご要望をいただくことも多いため、 Powershell スクリプトを作成する手間はありますが、工夫次第では様々な要望に対して柔軟に対処することも可能になると思います。
なお、修復スクリプトを実装すれば、修復までを Intune 経由で行わせることも可能ですが、このあたりは組織の運用方針に従って実装有無を検討するのがよいかと思われます。
最後までお読みいただき、ありがとうございました。
関連ページ
「Enterprise Mobility + Security 導入支援サービス」はこちら |