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

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

## インストール

{% stepper %}
{% step %}
**必要なもの**

開始する前に、Aikido Device Protection ダッシュボードから以下を用意してください：

* **PowerShell インストールコマンド**（ダッシュボードのユーザーグループセレクターからコピーしたもの。トークンとインストーラーのダウンロードが含まれます）

まだ用意していない場合は、[Aikido Device Protection ダッシュボード](https://app.aikido.dev/endpoint-protection/devices)に戻り、**Connect Device** をクリックしてください。
{% endstep %}

{% step %}
**管理対象デバイスでインストールコマンドを実行する**

PowerShell インストールコマンドを、システムコンテキストで実行される単発のスクリプトとしてデプロイします。Fleet は `fleetd` を通じて、Windows ホスト上で PowerShell スクリプトをローカル SYSTEM アカウントとして実行します。

1. Aikido Device Protection ダッシュボードで、対象のユーザーグループの PowerShell インストールコマンドをコピーします。
2. コマンドを `.ps1` ファイルとして保存します（例：`aikido-install.ps1`）。
3. Fleet コンソールで、**Controls** → **Scripts** に移動します。
4. 左上のチームドロップダウンから対象のチームを選択します。
5. **Upload** をクリックし、`aikido-install.ps1` ファイルを追加します。
6. デバイス群全体にデプロイするには、`fleetctl run-script --script-path aikido-install.ps1 --hosts <hostnames>` を実行します（またはラベルを使用してすべての Windows ホストを対象にします）。個別のホストの場合は、ホストの詳細ページを開いて **Actions** → **Run script** をクリックし、`aikido-install.ps1` を選択して **Run** をクリックします。
7. 各ホストの **Activity** フィードを確認し、スクリプトが正常に終了したことを確認します。
{% endstep %}

{% step %}
**ロックダウンポリシーを適用する**

Fleet の MDM プロファイル管理を通じて構成プロファイルを配信し、アンインストールをブロックします。

**AppLocker でアンインストールをブロックする**

1. 再度 **Add profile** をクリックし、以下の OMA-URI を使用して 2 つ目の Windows プロファイルを作成します：
   * **OMA-URI:** `./Vendor/MSFT/AppLocker/ApplicationLaunchRestrictions/Aikido/MSI/Policy`
   * **値（String）：** [aikido-applocker-deny-mdm.xml](https://raw.githubusercontent.com/AikidoSec/safechain-internals/refs/heads/main/docs/aikido-applocker-deny-mdm.xml) の内容を貼り付けます（リンクを開き、XML テキスト全体をコピーしてここに貼り付けます）
2. プロファイルを保存し、Windows ホストにデプロイします。
{% endstep %}

{% step %}
**インストール後にデバイスを再起動する**

Fleet の UI には、チーム全体を再起動するボタンはありません。`fleetctl` を通じて Windows の `RebootNow` MDM コマンドを使用するか、1 行の PowerShell 再起動スクリプトを配信してください。

1. 以下を `windows-restart-device.xml` として保存します：

   ```xml
   <Exec>
     <Item>
       <Target>
         <LocURI>./Device/Vendor/MSFT/Reboot/RebootNow</LocURI>
       </Target>
       <Meta>
         <Format xmlns="syncml:metinf">null</Format>
         <Type>text/plain</Type>
       </Meta>
       <Data></Data>
     </Item>
   </Exec>
   ```

2. 対象の各ホストに対して `fleetctl mdm run-command --payload=windows-restart-device.xml --hosts=<host1>,<host2>` を実行します。
3. または、`Restart-Computer -Force` を含む `aikido-reboot.ps1` スクリプトを **Controls** → **Scripts** からアップロードし、対象のホストに対して実行します。

エージェントは次回の起動時に完全に有効化されます。
{% endstep %}
{% endstepper %}

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


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