
# Windows で SCCM を使用して Aikido Device Protection をデプロイする

Microsoft Configuration Manager (SCCM) を使用して、必要な権限を設定した状態で、管理対象の Windows デバイス群全体に Aikido Device Protection をデプロイします。

## インストール

{% hint style="info" %}
開始する前に、すべてのデバイスで Configuration Manager クライアントが実行されており、デバイスコレクションのメンバーである必要があります。
{% endhint %}

{% stepper %}
{% step %}
### パッケージソースを準備する

1. [Aikido アプリ](https://app.aikido.dev/endpoint-protection/devices)から **PowerShell インストールコマンド**をコピーします(**Connect Device** をクリック)。
2. サイトサーバーが読み取れるネットワーク共有上のフォルダー(例: `\\<server>\<share>\Aikido`)に、`aikido-install.ps1` として保存します。
3. 同じフォルダーに、次のスクリプトを `aikido-applocker.ps1` として保存します。このスクリプトは、AppLocker がルールを適用するために必要な Application Identity サービスを有効にし、ユーザーが Aikido アンインストーラーを起動できないようにする AppLocker ルールを追加します。

{% code title="aikido-applocker.ps1" %}
```powershell
sc.exe config appidsvc start= auto
Start-Service -Name AppIDSvc
$tmp = "$env:TEMP\aikido-applocker.xml"
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/AikidoSec/safechain-internals/refs/heads/main/docs/aikido-applocker-deny.xml" -OutFile $tmp
Set-AppLockerPolicy -XmlPolicy $tmp -Merge
Remove-Item $tmp -Force
```
{% endcode %}
{% endstep %}

{% step %}
### パッケージとインストールプログラムを作成する

1. Configuration Manager コンソールで、**Software Library** → **Application Management** → **Packages** に移動し、**Create Package** をクリックします。
2. 名前(例: "Aikido Device Protection")を入力し、**This package contains source files** を選択して、フォルダーの UNC パスを参照し、**Next** をクリックします。
3. **Standard program** を選択し、**Next** をクリックします。
4. 次のように設定して、ウィザードを完了します。
   * **Name**: `Install`
   * **Command line**: `%windir%\Sysnative\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass -File aikido-install.ps1`
   * **Run**: **Hidden**
   * **Program can run**: **Whether or not a user is logged on**(SYSTEM として実行)
{% endstep %}

{% step %}
### ロックダウンプログラムを追加する

1. **Aikido Device Protection** パッケージを選択し、**Programs** タブを開いて **Create Program** をクリックします。
2. **Standard program** を選択し、次のように設定します。
   * **Name**: `Block uninstall`
   * **Command line**: `%windir%\Sysnative\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass -File aikido-applocker.ps1`
   * **Run**: **Hidden**
   * **Program can run**: **Whether or not a user is logged on**
3. **Requirements** ページで **Run another program first** をオンにし、**Aikido Device Protection** パッケージと **Install** プログラムを選択して、ウィザードを完了します。
4. **Programs** タブで **Block uninstall** を右クリックし、**Properties** を選択します。
5. **General** で **After running** を **Configuration Manager restarts computer** に設定し、**OK** をクリックします。

エージェントは次回の起動時に完全に有効化されるため、このプログラム実行後の再起動によってインストールが完了します。

{% hint style="info" %}
エンドユーザーがローカル管理者である場合、AppLocker ルールは回避される可能性があります。より強力に適用するには、このポリシーを App Control for Business (WDAC) と組み合わせ、ローカル管理者権限を削除してください。
{% endhint %}
{% endstep %}

{% step %}
### パッケージを配布してデプロイする

1. **Aikido Device Protection** パッケージを選択し、**Distribute Content** をクリックして、配布ポイントを追加します。
2. **Block uninstall** プログラムを選択し、**Deploy** をクリックします。Configuration Manager は最初に **Install** を実行します。
3. **General** で、対象のデバイスコレクションを選択します。
4. **Deployment Settings** で、**Purpose** を **Required** に設定します。
5. **Scheduling** で、**As soon as possible** の割り当てスケジュールを追加し、ウィザードを完了します。

{% hint style="info" %}
クライアントは、次回のマシンポリシーのポーリング間隔(デフォルトでは 60 分)で新しいデプロイを取得します。テストデバイスでより早く実行させるには、コンソールでそのデバイスを右クリックし、**Client Notification** → **Download Computer Policy** を選択します。
{% endhint %}
{% endstep %}
{% endstepper %}

## トラブルシューティング


| 問題 | 対処法 |
| ------- | --- |
| スクリプトの実行後、デバイスがダッシュボードに表示されない | デバイスを再起動してください。エージェントは次回の起動時に登録が完了します |
| MDM コンソールでスクリプトがエラーで終了する | テストホスト上でスクリプトを SYSTEM として手動で実行し、エラーの詳細を確認してください。また、デバイスがインストーラーをダウンロードするためにインターネットにアクセスできることを確認してください |
| エージェントサービスが実行されていない | デバイスを再起動してください。それでもサービスが存在しない場合は、インストールスクリプトを再実行してください |
| スクリプトが実行ポリシーによってブロックされる | MDM 経由で実行されるスクリプトは SYSTEM として実行されるため、ユーザーレベルの実行ポリシーによる制限を受けません。MDM がスクリプトの実行を制限する追加のポリシーを適用していないことを確認してください |
| インストール後、デバイスが非アクティブと表示される | エージェントを完全に有効化するには再起動が必要です。再起動後にもう一度確認してください |
