Young Leaves

ARM ベースのCPU でWindows 11 にMicrosoft Defender for Endpoint のオンボード用ローカルスクリプトがエラーになる

今回はARM ベースのWindows 11 でMicrosoft Defender for Endpoint をオンボードする時、ローカルスクリプトでエラーが発生し正常に登録できなかった事象について説明します。

PC 環境

メーカー

Lenovo Yoga Slim 7x Gen 9

OS

Windows 11 Pro

CPU

Snapdragon(R) X Elite

Microsoft Defender for Endpoint のインストール方法

今回はエラーに関する記事のため、Microsoft Defender for Endpoint のWindows デバイスのオンボード方法を知りたい場合は以下URL を参照してください。

ローカル スクリプトを使用した Windows デバイスのオンボード

発生した事象・原因

デバイスをオンボードするためにローカルスクリプトを実行したところ、以下エラーでオンボードができない事象を確認しました。

[Error Id: 15, Error Level: 1] Unable to start Microsoft Defender for Endpoint Service. Error message: 無効なサービス名 です。

スクリプトの中身を確認しコマンドを1つずつ実行したところ、以下の行のコマンドで「SENSE」サービスがインストールされていないとを確認しました。

<省略>
%windir%\System32\sc.exe query "SENSE" | %windir%\System32\find.exe /i "RUNNING" >NUL 2>&1
<省略>

SENSE はMicrosoft Defender for Endpoint の名称になる全身のWindows Defender Advanced Threat Protection のサービス名です。Microsoft Defender for Endpoint へデバイスをオンボードする場合、このサービスを起動させる必要があります。指定したサービスがインストールされていないため、サービスを起動できずタイムアウトとなりエラーが発生していました。

解決した方法

デバイスは異なりますが、Surface Laptop 7 で同様の事象を確認しました。

Windows Defender ATP (SENSE service) on Arm Surface Laptop 7

QA サイトによると、DISM コマンドでSense.Client をインストールすることで解消すると記載されています。コマンドプロンプトから管理者権限で以下コマンドを実行後、ローカルスクリプトを実行したところMicrosoft Defender for Endpoint へのオンボードができました。

rem Senseクライアントの機能パッケージをインストールする
DISM /online /Add-Capability /CapabilityName:Microsoft.Windows.Sense.Client~~~~

DISM の機能パッケージについては以下ドキュメントを参照してください。

DISM 機能パッケージの保守のコマンド ライン オプション

ちなみに、Intel CPU のWindows 11 (Windows 10 からアップグレードしたデバイス) で確認したところ、SENSE はインストール済でした。ARM ベースのCPU ではデフォルトでSense.Client がインストールされていないと考えられます。

C:\Windows\System32>sc.exe query "SENSE"

SERVICE_NAME: SENSE
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 1077  (0x435)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

まとめ

  • ARM ベースのWindows 11 では「Microsoft.Windows.Sense.Client~~~~」がデフォルトでインストールされていない
  • ローカルスクリプトを実行する前にDISM コマンドでSense.Client をインストールする必要がある