# Windows でのローカル VM Scanner のセットアップ

Aikido VM Scanner は、システムにインストールする単一パッケージです。依存関係を自動的にスキャンして特定し、環境の詳細なビューを提供します。

### 前提条件

* 最小システム要件：1GB 以上の RAM。
* 推奨システム要件：2GB 以上の RAM と 4 CPU。
* システムの管理者権限があることを確認してください
* お使いのシステムまたはクラウドプロバイダーに適したコマンドを使用してください
* [Windows では、PowerShell がインストールされ有効になっていることを確認してください](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.5)

### インストールとアップグレード

PowerShell を管理者モードで起動し、`AIKIDO_TOKEN` を [Aikido のローカル VM スキャンページで取得した有効なトークン](https://app.aikido.dev/settings/integrations/vm-scan-agent)に置き換えてください。以下のオプションパラメーターも指定できます：

* `VM_TYPE`：`production`、`staging`、`development` のいずれか。
* `OUTPUT`：`stdout`、`stderr`、`none` のいずれか。
* `INITIAL_SCAN`：`1` または `0` のいずれか。

```
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-WebRequest -Uri "https://aikido-vm-agent.s3.eu-west-1.amazonaws.com/v1.5.2/AikidoVmScanner.msi" -OutFile "AikidoVmScanner.msi"
msiexec /i AikidoVmScanner.msi /qn /norestart AIKIDO_TOKEN=REPLACE_ME VM_TYPE=production OUTPUT=stdout INITIAL_SCAN=1
```

<table><thead><tr><th width="99.64453125">ハッシュ</th><th>AikidoVmScanner.msi</th></tr></thead><tbody><tr><td>MD5</td><td>e3f54b633687383fd8c65ab0a9719e97</td></tr><tr><td>SHA256</td><td>bf88e1a8ffb9084c8bd9826ab92133ea6c0905b34406720abecba313b51e2c45</td></tr></tbody></table>

インストールを自動化しており、常に最新バージョンを使用したい場合は、以下のリンクを使用できます：

* https://aikido-vm-agent.s3.eu-west-1.amazonaws.com/latest/AikidoVmScanner.msi

VM Scanner Agent は 1 日 1 回、**午前 4:00 ～ 午前 8:00**（マシン時刻）の間のランダムな時刻に実行されます。

インストール後、**最初のスキャンが自動的に開始されます**。オンデマンドで実行したい場合は、管理者権限の PowerShell で以下のコマンドを手動で実行してください。

```powershell
& 'C:\Program Files\AikidoVmScanner\AikidoVmScanner.exe'
```

### プロキシ経由での接続

マシンが企業プロキシを経由してインターネットに接続している場合、VM Scanner は標準の `HTTPS_PROXY`、`HTTP_PROXY`、`NO_PROXY` 環境変数からプロキシを検出します。これらがいずれも設定されていない場合は、WinHTTP の既定設定や PAC スクリプトを含む Windows のシステムプロキシ設定にフォールバックします。`config.json` にプロキシオプションはなく、有効化する必要のある設定もありません。

スキャン自体は完全にローカルで実行されます。唯一の外部通信は、`bg.aikido.dev`、または `bg.us.aikido.dev` などのリージョン別の同等のホストへの HTTPS（ポート 443）通信です。

{% hint style="info" %}
プロキシのサポートはバージョン 1.4.5 以降で利用できます。
{% endhint %}

#### 日次スキャン用のプロキシ設定

日次スキャンは SYSTEM アカウントでスケジュールされたタスクとして実行されるため、変数はマシンレベルで設定する必要があります。ご自身のユーザーアカウントに設定したプロキシ設定は SYSTEM からは参照できません。管理者権限の PowerShell で以下を実行します：

```powershell
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://proxy.example.com:8080", "Machine")
[Environment]::SetEnvironmentVariable("NO_PROXY", "localhost,127.0.0.1", "Machine")
```

プロキシで認証が必要な場合は、URL に資格情報を含めてください：`http://user:password@proxy.example.com:8080`。

環境変数の代わりに、マシン全体の WinHTTP プロキシを設定することもできます。スキャナーはこちらの設定にも従います：

```powershell
netsh winhttp set proxy proxy-server="http=proxy.example.com:8080;https=proxy.example.com:8080" bypass-list="localhost;127.0.0.1"
```

#### SSL インスペクションを行うプロキシ

プロキシが証明書を内部 CA によって署名された証明書に置き換える場合は、その CA をマシンの信頼されたルートストアにインポートしてください。管理者権限の PowerShell で以下を実行します：

```powershell
Import-Certificate -FilePath "C:\path\to\corporate-ca.crt" -CertStoreLocation Cert:\LocalMachine\Root
```

#### プロキシが使用されていることの確認

各実行では、検出されたプロキシが `C:\ProgramData\AikidoVmScanner\Logs` のログに記録されます：

```
Using proxy http://proxy.example.com:8080 for https://bg.aikido.dev/api/integrations/vm_scan/uploadScanResult
```

プロキシが検出されない場合は、代わりに `No proxy detected for ..., connecting directly` と表示されます。

### アンインストール

PowerShell を管理者モードで起動し、以下を実行します：

```powershell
msiexec.exe /x (Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like "AikidoVmScanner*" }).IdentifyingNumber /qn /norestart
```

### ログ

ログは、最後に生成された SBOM とともに次の場所にあります：`C:\ProgramData\AikidoVmScanner\Logs`
