組織全体へのMaxifulの展開
Windows PCとMacにMaxifulを展開するIT担当者向けの技術メモです。それぞれでのインストール方法、Intune・Jamf Pro・サイレントインストールによる配布方法、コンピューターに配置されるものと起動するもの、許可が必要なネットワークホスト、セキュリティツールからの見え方、一元的に指定できる設定、アップデートと削除の方法を説明します。
Windows版・Mac版のMaxiful 0.9.60で確認しています。両者で異なる点は、各セクションでWindowsとMacに分けて説明します。
インストールの仕組み
どちらのプラットフォームでも、Maxifulはユーザーが各自でセットアップするデスクトップアプリです。初回起動時に、そのユーザー用のアシスタントのランタイムをセットアップします。これはオープンソースのエージェントランタイムであるOpenClawで、MaxifulがそのユーザーのためにインストールするNode.js上で動作します。このランタイムのバックグラウンドプロセスであるゲートウェイがアシスタントを動かし、ユーザーがコンピューターにサインインするたびに起動します。
Windowsの場合
ユーザー単位で、管理者権限は不要です。インストーラーMaxiful-x64-setup.exeはWindowsにサインインしているユーザーとして実行され、そのユーザーの%LOCALAPPDATA%\Maxifulにインストールされます。インストール済みアプリにはそのユーザーの分として表示されるため、1台のコンピューターでMaxifulを使うユーザーはそれぞれ自分のインストールを持ちます。
Windows 10以降(64ビット)。Maxifulのウィンドウの描画にはMicrosoft Edge WebView2を使います。WebView2ランタイムがない場合、インストーラーはMicrosoft純正のWebView2インストーラーをgo.microsoft.comからダウンロードし、サイレントで実行します。
Macの場合
アプリは/Applicationsに1つ、セットアップはユーザー単位です。Mac版MaxifulはディスクイメージMaxiful-arm64.dmgで提供され、中のMaxiful.appはApple Developer IDで署名され、Appleの公証を受けています(署名の詳細はMac:IntuneとJamf Proを参照)。ユーザー自身またはデバイス管理によって/Applicationsにコピーすると、そのMacのすべてのユーザーで共通の1つのアプリになります。アプリを開いた各ユーザーがサインインすると、それぞれ専用のインストールが作られ、アシスタントとデータは各自のホームフォルダーに保存されます。
macOS 13以降(Appleシリコン・Intel)。アプリは両方に対応した1つのビルドです。
Windows:サイレントインストール
Maxiful-x64-setup.exe /S
| スイッチ | 動作 |
|---|---|
/S | サイレント:インストーラーのウィンドウを表示せず、何も確認しません。スタートメニューとデスクトップにショートカットを作成します。 |
/P | パッシブ:進行状況バーのみを表示し、何も確認しません。Maxiful自身のアップデートはこの方法で実行されます。 |
/NS | スタートメニューとデスクトップのショートカットを作成しません。 |
/R | インストール完了時にMaxifulを開きます(/Sまたは/Pと併用)。 |
/DEFENDER=managed | 自社のDefenderポリシーでMaxifulの作業フォルダー(下記)を除外に追加するため、インストール時にWindowsへの確認を行いません。 |
/DEFENDER=off | これらのフォルダーをDefenderでスキャンさせるため、インストール時にDefenderの除外をWindowsに求めません。 |
終了コード。0はインストールの完了を、それ以外のコードは未完了を示します。2には複数の原因がありえます。その1つは、別のプログラムがMaxifulのファイルを30秒間使用し続けた場合で、このときは何も変更されていません。インストーラーは書き込みの前に、そのユーザーが実行中のMaxifulを終了します。
インストール済みの環境への上書き。新しいバージョンのインストーラーを同じ方法で実行すると、その場でアップデートされ、ユーザーのアシスタントとデータはそのまま残ります。2026年10月26日に当社のWindowsテストPCで、0.9.54から署名済みの0.9.58へのアップデートで確認しました。
Microsoft Defenderの除外フォルダー
Maxifulの作業フォルダーでは、チームが起動するたびに数千のファイルが変更されます。そのため、Maxifulはこのうち4つのフォルダーをMicrosoft Defenderのスキャン対象から除外するようWindowsに求めます。/DEFENDERスイッチを指定しない場合、インストールはファイルの書き込み後にこれを求めます。Windowsが独自の許可プロンプトを表示し、管理者権限のないユーザーには管理者のサインインを求めます。誰も応答しない場合、約2分後にWindowsがプロンプトを自動的に閉じ、インストールはそのまま完了します。Maxifulは次回起動時にもう一度確認し、2回目のプロンプトにも応答がなければ「いいえ」とみなして、以降は確認しません。
/DEFENDER=managedまたは/DEFENDER=off(この表記どおり)を指定すると、インストール、アップデート、起動のいずれでもWindowsへの確認を行わず、Maxifulの設定には、このコンピューターのMicrosoft DefenderはIT部門が管理していると表示されます。フォルダーをスキャン対象にしてもすべて動作しますが、チームの起動は遅くなります。ユーザーは後からMaxifulの設定のMaxiful の作業フォルダーを Defender の対象外にするで自分で除外を有効にすることもでき、その場合は上記と同じくWindowsに確認が求められます。
| Defenderの除外を求めるフォルダー |
|---|
%LOCALAPPDATA%\Lanoko\node-v24.21.0\node_modules\openclaw |
%LOCALAPPDATA%\Lanoko\node-v24.21.0\openclaw-compile-cache |
%USERPROFILE%\.openclaw-*\tmp\plugin-captures |
%USERPROFILE%\.openclaw-*\agents\*\agent |
Windows:Microsoft Intune(Win32アプリ)
サイレントインストールとインストール済み環境へのアップデートは、当社のWindowsテストPCで確認済みです。この手順はMicrosoftのWin32アプリのドキュメントに沿ったもので、Intuneテナントでは実行していません。動作が異なる場合は[email protected]までお知らせください。
- パッケージフォルダーを作成します。Maxifulアカウントからダウンロードし、SHA-256で検証した
Maxiful-x64-setup.exeと、ファイルuninstall.cmdを入れます。Intuneはアンインストールコマンド内の環境変数を展開しないため、このファイルが必要です:@echo off "%LOCALAPPDATA%\Maxiful\uninstall.exe" /S _?=%LOCALAPPDATA%\Maxiful set rc=%ERRORLEVEL% del /q "%LOCALAPPDATA%\Maxiful\uninstall.exe" rmdir "%LOCALAPPDATA%\Maxiful" exit /b %rc%_?=を指定すると、アンインストーラーがその場で実行され、完了してからスクリプトが次に進みます。その後の2行で、アンインストーラー自体と空になったフォルダーを削除します。ユーザーのアシスタントとデータも削除するには、1行目を/S /REMOVEALL _?=%LOCALAPPDATA%\Maxifulにします(削除を参照)。 - MicrosoftのWin32 Content Prep Toolで.intunewinファイルを作成します:
IntuneWinAppUtil.exe -c C:\maxiful-package -s Maxiful-x64-setup.exe -o C:\maxiful-intunewin -q - Program:インストールコマンドには、Defenderポリシーで上記の4つのフォルダーを除外している場合は
Maxiful-x64-setup.exe /S /DEFENDER=managedを、スキャン対象にする場合はMaxiful-x64-setup.exe /S /DEFENDER=offを指定します。アンインストールコマンドはuninstall.cmd、インストール動作はUser、デバイスの再起動動作はNo specific actionにし、リターンコードは既定値のままにします。 - Requirements:64ビット、Windows 10以降を指定します。
- 検出規則:種類はファイル、パスは
%LOCALAPPDATA%\Maxiful、ファイルはMaxiful.exe、検出方法はFile or folder existsを指定します。 - 割り当て:ユーザーグループにRequiredまたはAvailableで割り当てます。
Intuneは何も確認しないインストールを前提とします。/DEFENDERスイッチを指定すれば、Maxifulのインストールは何も確認しません。指定しない場合、唯一表示されうる確認はWindowsのDefenderプロンプトです。広く割り当てる前に初回起動をお読みください。
Mac:Microsoft IntuneとJamf Pro
デバイス管理で、公証済みのMaxiful.appを、ユーザーがダウンロードするものと同じディスクイメージから/Applicationsにインストールします。必要な値は次のとおりです。
| MDMの項目 | 値 |
|---|---|
| バンドルID | ai.maxiful.desktop |
| Team ID | 467H9AXX55 |
| アプリの署名 | Developer ID Application: Polytrader ltd (467H9AXX55)、Appleによる公証済み。 |
| コード要件 | identifier "ai.maxiful.desktop" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "467H9AXX55" |
| バージョン | /Applications/Maxiful.app/Contents/Info.plistのCFBundleShortVersionString:Maxifulのバージョン。 |
| インストール先 | /Applications/Maxiful.app |
| 管理対象環境設定のドメイン | ai.maxiful.desktop(バンドルID)。キーは管理対象の設定を参照してください。 |
Microsoft Intune(macOS app (DMG))
- Apps、All Apps、Createの順に選び、プラットフォームはmacOS、種類はmacOS app (DMG)を選択します。Maxifulアカウントからダウンロードし、SHA-256で検証した
Maxiful-arm64.dmgを選択します。各MacにはIntuneのmacOS用管理エージェントが必要です。 - App information:ロゴを追加すると、Company Portalにアプリのアイコンが表示されます。Requirements:Minimum Operating SystemにmacOS 13を指定します。
- Detection rules:Included appsに
ai.maxiful.desktopとそのバージョンを指定します。Ignore app versionはNoにして、アップロードした各バージョンがインストールされるようにします。あわせてAutoUpdateを0に設定します(管理対象の設定を参照)。すべてのバージョンをIntuneでインストールし、Maxiful自身はアップデートを確認しなくなります。 - Assignments:Required(
/Applicationsにインストール)、Company PortalでのAvailable、またはUninstallを選びます。
IntuneがDMGアプリをアップデートまたは削除するにはフルディスクアクセスが必要で、macOS 13以降ではアプリの割り当て時にこれを求めます。新しいバージョンを展開するには、そのディスクイメージを同じアプリにアップロードします。Requiredの割り当ては自動でアップデートされ、Availableの場合は各ユーザーがCompany PortalでReinstallを選びます。
Jamf Pro
Jamf Proは配布ポイントからパッケージを展開します。Jamf Composerで/Applications/Maxiful.appを含むパッケージを作成します:
- Macで、ディスクイメージから
Maxiful.appを/Applicationsにコピーします。Composerで、Finderから/Applications/Maxiful.appをSourcesリストにドラッグして/Applications内の配置を保ち、そのソースからパッケージを作成します。 - パッケージを配布ポイントとJamf Proに追加します。
- Computers、Policiesで新しいポリシーを作成します。Generalでトリガーと実行頻度を設定し、PackagesペイロードでアクションInstallを指定してパッケージを追加し、配布ポイントを選びます。
- Scopeタブで対象のコンピューターを選びます。またはポリシーをSelf Serviceで利用できるようにします。
- 新しいバージョンごとに同じ方法でパッケージを作成してポリシーで展開し、
AutoUpdateを0に設定して(管理対象の設定を参照)、Maxiful自身がアップデートを確認しないようにします。
この手順はMicrosoftとJamfのドキュメントに沿ったもので、IntuneやJamfのテナントでは実行していません。動作が異なる場合は[email protected]までお知らせください。
ゲートウェイのログイン項目
アシスタントのゲートウェイは、各ユーザー自身のLaunchAgentとしてai.openclaw.<name>というラベルで動作します。macOS 13以降では、ルールタイプLabel prefix、値ai.openclaw.のサービス管理(管理対象ログイン項目)ペイロードで自動的に承認されます。
初回起動:各ユーザーが行うこと
サイレントインストール、またはMDMによる/Applicationsへのコピーで、Maxifulはすぐに開ける状態になります。初回起動時には、WindowsでもMacでも、各ユーザーに次の手順が求められます。これはIT部門がユーザーの代わりに完了することはできません。
- 各ユーザーは自分のメールアドレスでサインインします。Maxifulがサインイン用のリンクをメールで送り、そのリンクからアプリが開きます。ワークスペースのオーナーが組織のメールドメインにシングルサインオンを設定している場合は、代わりに職場のアカウントで続けるを選べます。ブラウザーでIDプロバイダー(Microsoft Entra ID、Google Workspace、Okta、その他のOpenID ConnectプロバイダーまたはSAML 2.0プロバイダー)のサインインが開きます。Enforce single sign-onがオンの場合は、メールのリンクからもIDプロバイダーに引き継がれます。
- 新しいワークスペースをセットアップするユーザーは、Maxifulアカウントのセットアップコードを入力します。コードは、最初に使ったコンピューターに結び付けられ、そのコンピューターでのみ使えます。
- ワークスペースに招待された同僚は、代わりにそのワークスペースに参加します。オーナーのAdd people to my workspace when they sign inがオンの間に、検証済みドメインのユーザーがIDプロバイダー経由でサインインした場合も同様です。同僚の新しいデバイスはそれぞれ、ワークスペースのオーナーが「チーム」ページの「メンバー」で許可するまで待機します。
その後、セットアップがそのユーザー用にNode.jsとランタイムをインストールし、チームを起動します。これには下記のネットワークホストへの接続が必要です。
Macの場合:macOSが求める許可
Maxifulは、機能が初めて必要とするときにだけmacOSに許可を求め、macOSが独自の確認を表示します:
- 通知:ウィンドウがバックグラウンドにあるときに返信が届いた場合など、Maxifulが初めて通知を表示するとき。
- マイクと音声認識:ユーザーが初めてメッセージを音声入力するとき、またはアシスタントと話すとき。
- アクセシビリティ、画面収録、入力監視:オーナーが初めてアシスタントにコンピューターの操作を許可するとき。
チームが動作する場所と常時稼働のコンピューター
チームはオーナーのコンピューターで動作します。アシスタント、その記憶、会話はそのコンピューター上のオーナーのインストールにあり、同僚は自分のデバイスからそこに接続します。チームに24時間対応させたいオフィスでは、オーナーのインストールを電源を入れたままのコンピューターで動かします:
- Mac:オーナーのmacOSアカウントでログインしておきます。ゲートウェイはそのアカウント自身のLaunchAgentで、アカウントのログイン時に起動します。そのため、再起動のたびにアカウントにログインし直すか、自動ログインを有効にしてください。ただし、FileVaultがオンの間はmacOSで自動ログインを使用できません。
- Windows PC:オーナーのWindowsアカウントに自動でサインインするように設定します(Windowsの自動サインイン)。Maxifulはアカウントのサインイン時にゲートウェイを起動します。起動時に開始するには管理者権限でのインストールが必要ですが、Maxifulはこれを一切行いません。
アカウントのAIモデルが応答するのは一度に1台のコンピューターだけです。オーナーがノートPCでもMaxifulを使い、そこでここでMaxifulを使うを選ぶと、オーナーが常時稼働のコンピューターで再びこれを選ぶまで、そちらのアシスタントは応答しなくなります。
そのコンピューターのアップデートを自分でインストールするには、AutoUpdateを0に設定します(管理対象の設定を参照)。Maxifulのバックアップは同じコンピューター上のオーナーのホームフォルダー内<name>-shared/backupsに書き込まれるアーカイブです。自社のバックアップツールでコンピューターの外にコピーしてください。
コンピューターに配置されるもの
以下の<name>は、インストールごとの短い名前です。
Windowsの場合
| 場所 | 内容 |
|---|---|
%LOCALAPPDATA%\Maxiful | アプリ本体:Maxiful.exe、gateway-launcher.exe(アシスタントの各コマンドをサンドボックス内で起動)、uninstall.exe。 |
%LOCALAPPDATA%\ai.maxiful.desktop | アプリ自身のデータ:WebView2のデータ、ログ(logs\Maxiful.log、logs\installer.log)、Defenderの確認の記録。 |
%LOCALAPPDATA%\Lanoko | OpenClawランタイムをインストールしたNode.js 24.21.0と、npmのキャッシュ。このフォルダーにはMaxifulの以前の名前が使われています。 |
%USERPROFILE%\.openclaw-<name> | インストール本体:ランタイムの構成、アシスタント、そのワークスペースと記憶、インストールのシークレット、アシスタント専用のブラウザー。 |
%USERPROFILE%\.stomme | インストールごとのMaxiful自身の記録(アドオンやオーナーの判断など)。 |
%USERPROFILE%\.lanoko-sandbox\<name> | ゲートウェイのサンドボックス境界を記したプレーンテキストの説明。 |
| レジストリ | HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\Maxiful(インストール済みアプリの項目)とHKCU\Software\maxiful\Maxiful(インストールフォルダー)。 |
| サインイン時に起動 | ゲートウェイ用のタスクスケジューラのタスクです。ランタイム自身のもの(OpenClaw Gateway (<name>))かMaxiful自身のもの(ai.openclaw.gateway-<name>)です。Windowsがタスクの登録を拒否した場合は、ユーザーのスタートアップフォルダーに置かれるOpenClaw Gateway (<name>).vbsになります。ランタイム自身のタスクがゲートウェイを実行する場合、MaxifulはさらにタスクMaxiful team keeper (<name>)を追加し、2分ごとにチームの状態を確認します。スタートアップフォルダーのスクリプトを使う場合、このタスクは追加されません。いずれも、ユーザーのサインイン時にそのユーザーとしてゲートウェイを起動します。誰もサインインしていない状態で起動するものはありません。ランタイムはS4Uログオンと起動時トリガーを持つタスクをWindowsに要求しますが、Windowsがこれを登録するのは管理者権限で実行したインストールの場合だけです。Maxifulはインストールを管理者権限で実行しないため、Windowsは登録を拒否します。その場合ランタイムはスタートアップフォルダーのスクリプトを使うか、以前のバージョンが登録したタスク(サインイン時に起動するもの)をそのまま使います。コンピューターのタスクはschtasks /query /tn "OpenClaw Gateway (<name>)" /xmlで確認できます。 |
Windowsのプロセス
| プロセス | 内容 |
|---|---|
Maxiful.exe | アプリ本体です(署名済み、後述)。ウィンドウはMicrosoftのmsedgewebview2.exeで動作します。 |
node.exe | %LOCALAPPDATA%\Lanoko\node-v24.21.0から起動します。OpenClawゲートウェイとランタイム自身のコマンドです。Windowsのサンドボックス向けの修正を加えたMaxiful独自ビルドのNode.js 24.21.0で、使用前にアプリに固定されたSHA-256と照合されます。 |
gateway-launcher.exe | アプリのフォルダーから起動します。アシスタントの各コマンドをサンドボックス内で開始します。 |
chrome.exe | %USERPROFILE%\.openclaw-<name>\browser\chromium\chrome-win64から起動します。アシスタント専用のブラウザーで、Playwrightのダウンロードサーバーから取得したChrome for Testingのビルドです。固定されたSHA-256と照合されます。ユーザー自身のブラウザーを開くことはありません。 |
cmd.exe, wscript.exe | ゲートウェイを起動します。gateway.cmdは、ゲートウェイのタスクスケジューラのタスクがインストールフォルダー内のgateway.vbs経由(以前のバージョンのタスク)または直接実行するか、ユーザーのスタートアップフォルダーのOpenClaw Gateway (<name>).vbsが実行します。 |
アシスタントが実行するコマンド(シェル、PowerShell、スクリプト)はゲートウェイの子プロセスとして、既定では各アシスタントのサンドボックス内で動作します。ゲートウェイは127.0.0.1の18800以降のポート(最初のインストールは18800)で待ち受け、Maxiful.exeはほかのループバックポートで待ち受けます。当社のテストPCでは、Maxifulのプロセスがそれ以外のアドレスで待ち受けることはありませんでした。
Macの場合
| 場所 | 内容 |
|---|---|
/Applications/Maxiful.app | アプリ本体です。Macの全ユーザーで1つのコピーを共有します。 |
~/Library/Application Support/Lanoko | OpenClawランタイムをインストールしたNode.js 24.21.0、npmのキャッシュ、ゲートウェイの作業フォルダーです。フォルダー名はMaxifulの旧名称のままです。 |
~/.openclaw-<name> | インストール本体です。ランタイムの構成、アシスタント、そのワークスペースとメモリ、インストールのシークレット、アシスタント専用のブラウザーが含まれます。 |
~/.stomme | インストールごとのMaxiful独自の記録です。アドオンやオーナーの選択などが含まれます。 |
~/.lanoko-sandbox/<name> | ゲートウェイのmacOSサンドボックスプロファイルgateway.sbです。ゲートウェイはこのプロファイルのもとで起動されます。 |
~/Library/LaunchAgents/ai.openclaw.<name>.plist | ゲートウェイのLaunchAgentです。ユーザーのサインイン時にそのユーザーとしてゲートウェイを起動し、停止した場合は再起動します。 |
~/Library/Logs/ai.maxiful.desktop/desktop.noindex | アプリのログMaxiful.logです。 |
~/Library/Logs/Lanoko/gateway.noindex | ゲートウェイのログです。 |
| キーチェーン | ゲートウェイのデバイスキーMaxiful Gateway Device Keyです。ユーザーのキーチェーンに保存されます。 |
Macのプロセス
| プロセス | 内容 |
|---|---|
Maxiful | /Applications/Maxiful.appから起動するアプリ本体です。署名と公証を受けています(Mac: IntuneとJamf Proを参照)。 |
node | ~/Library/Application Support/Lanoko/node-v24.21.0/bin/nodeから起動します。OpenClawゲートウェイとランタイム自身のコマンドで、launchdが起動します。既定では上記のプロファイルを指定して/usr/bin/sandbox-exec経由で起動されます。nodejs.orgが配布するmacOS用の公式Node.js 24.21.0で、使用前にアプリに固定されたSHA-256と照合されます。 |
Google Chrome for Testing | ~/.openclaw-<name>/browser/chromiumから起動します。アシスタント専用のブラウザーで、Playwrightのダウンロードサーバーから取得したChrome for Testingのビルドです。固定されたSHA-256と照合されます。ユーザー自身のブラウザーを開くことはありません。 |
アシスタントが実行するコマンドはゲートウェイの子プロセスとして、既定では各アシスタントのサンドボックス内で動作します。ゲートウェイはWindowsと同じく、127.0.0.1の18800以降のポートで待ち受けます。
許可するネットワークホスト
接続はすべてコンピューターから外向きに、HTTPSで開かれます(リレーはWSSも使用します)。当社側からコンピューターへ接続を開くことはできません。
セットアップと日常の利用
| ホスト | 用途 |
|---|---|
maxiful.ai | サインイン(職場のアカウントによるサインインの開始と戻りを含む)、アカウント、アップデートフィード、アドオンストア、セットアップの診断。 |
lanoko.ai | セットアップコード、セットアップ時のモデルアクセス、ウェルカムメール、同僚のメンバーシップ。 |
proxy.stomme.ai | クラウドモデルへのすべての呼び出しと、その他の業務アプリで接続したアプリ。 |
stomme-model-proxy.stomme-ai.workers.dev | モデルの一覧。 |
or-key-worker.stomme-ai.workers.dev | プランの利用枠。 |
mc-cdn.lanoko.ai, mc-cdn.stomme.ai, mc-cdn.maxiful.ai | アドオンのインデックスとアドオン、Windows用のMaxifulのNode.jsビルド、ローカルのメモリ検索モデル、音声モデル。 |
nodejs.org | Node.js(セットアップ時)。 |
registry.npmjs.org | OpenClawランタイム(セットアップ時と、アップデートに新しいランタイムが含まれる場合)。 |
cdn.playwright.dev | アシスタントのブラウザー(セットアップ時)。 |
機能を使う場合のみ
| ホスト | 用途 |
|---|---|
relay.maxiful.ai | リレー(WSS):ペアリングしたスマートフォンと、同僚のデバイス。 |
relay.lanoko.ai | 旧名称の同じリレーです。2026年10月22日より前にペアリングしたインストールとスマートフォン用です。 |
ingress.lanoko.ai | TeamsやGoogle Chatなど、Webhookで配信するチャットプラットフォーム。 |
teamtailor.maxiful.ai | Teamtailorとの接続。 |
openrouter.ai | ローカルの検索インデックスを実行できないコンピューターでのメモリ検索。 |
github.com, huggingface.co | 当社のダウンロードサーバーが応答しない場合の、ローカルのメモリ検索エンジンとモデルの代替取得先。github.comはGoogle Workspaceとの接続が使うツールも配布しています。 |
clawhub.ai | ランタイムのプラグインカタログ。 |
connect.composio.dev, backend.composio.dev | 当社の連携ページにある任意のComposioカードでのみ使用します。 |
go.microsoft.com | WindowsでWebView2 Runtimeがない場合のみ。 |
| 接続したサービス | ユーザーが接続した各サービス(Google、Microsoft 365、Slackなど)の、それぞれのサービスのアドレス。 |
セキュリティツールからの見え方
Windowsの場合
署名者。当社が公開するすべてのインストーラーと、それがインストールするMaxiful.exeは、PolyTrader Ltdに発行された証明書で署名されています(証明書のサブジェクトはCN=Polytrader LTD)。PolyTrader LtdはMaxiful ABの前にMaxifulを公開していた会社です。ファイルの署名はGet-AuthenticodeSignatureで確認し、ダウンロードしたファイルはセットアップページのチェックサムと照合してください(手順はヘルプにあります)。
署名のないコンポーネント。ランタイムのnode.exeとアシスタントのchrome.exeにはAuthenticode署名がありません。Maxifulは使用前にそれぞれを固定されたSHA-256と照合します。これらの許可リストはパスで指定します。
許可リストに追加するもの:プロセス%LOCALAPPDATA%\Maxiful\Maxiful.exe(署名済み)、gateway-launcher.exe、%LOCALAPPDATA%\Lanoko\node-v24.21.0\node.exe、%USERPROFILE%\.openclaw-*\browser\chromium\chrome-win64\chrome.exe、上記のDefender用の4つのフォルダー、上記のネットワークホストです。
Macの場合
署名者。Maxiful.appはチームID 467H9AXX55のDeveloper IDで署名され、Appleの公証を受けているため、Gatekeeperは例外設定なしで開きます。許可リストではコード要件で指定できます(Mac: IntuneとJamf Proを参照)。署名はcodesign -dvv /Applications/Maxiful.appで確認できます。
ランタイムのコンポーネント。ゲートウェイのnodeはmacOS用の公式Node.js、アシスタントのブラウザーはGoogleのChrome for Testingです。いずれもMaxifulがダウンロードし、使用前に固定されたSHA-256と照合します。これらの許可リストはパスで指定します。
許可リストに追加するもの:/Applications/Maxiful.app(チームID 467H9AXX55)、~/Library/Application Support/Lanoko/node-v24.21.0/bin/node、~/.openclaw-*/browser/chromium以下のブラウザー、上記のネットワークホストです。
両方に共通
動作。ユーザーごとのNode.jsプロセスがサインイン時に起動し、外向きのHTTPS通信を行い、アシスタントのためにコマンドを実行します。また起動のたびにプラグインのファイルをコピーするため、インストールフォルダー以下に多数のファイルを書き込みます。
CrowdStrike。CrowdStrikeはFalcon for IT向けにOpenClawの「Search & Removal」コンテンツパックを公開しています。このパックは、実行中のOpenClawプロセス、npmのグローバルインストール、一般的なパスにあるOpenClawのバイナリ、サービス、ホームフォルダー内の状態フォルダーと構成フォルダーを検索します。削除ワークフローは、サービスとプロセスを停止し、npmパッケージをアンインストールし、インストールフォルダーと構成フォルダーを削除し、サービス登録、タスクスケジューラのタスク、launchdのplistなどを削除します。MaxifulのゲートウェイはOpenClawの実行中のプロセスで、状態をWindowsでは%USERPROFILE%\.openclaw-<name>、Macでは~/.openclaw-<name>に保存するため、このパックに検出される可能性があります。Maxifulを使うコンピューターで削除を実行すると、チームが停止し、アシスタントの構成とメモリが削除されるおそれがあります。検索機能でMaxifulが動作している場所を確認し、組織でMaxifulを使うコンピューターは削除の対象から外してください。
許可リストに追加するかどうかは、セキュリティチームの判断です。これらのプロセスはアシスタントのためにコマンドを実行します。既定では各アシスタントのサンドボックス内で、当社のセキュリティページで説明している承認のもとで動作します。
管理対象の設定
Maxifulはバージョン0.9.60から、WindowsとMacで管理対象の設定を読み取ります。それより前のバージョンは読み取りません。
IT部門はMaxifulの一部の設定を一元的に管理できます。Windowsではグループポリシーまたは Intune、MacではJamf、Intuneなどのデバイス管理ツールの構成プロファイルを使います。Maxifulは設定を使うたびに読み取ります。オーナーのスイッチの変更がアシスタントに反映されるのはMaxifulの次回起動時で、それまでは設定画面にその旨が表示されます。組織が設定した項目はMaxifulの設定で組織が設定と表示されて変更できず、設定した項目はすべてアクセスの先頭に一覧表示されます。ポリシーがない場合、MaxifulはIT部門が管理していないコンピューターと同じように動作します。
| 名前 | 値 | 内容 |
|---|---|---|
Workspace | 文字列 | コンピューター上のMaxifulは、このIDのワークスペースだけを開きます。ワークスペースのオーナーは、Maxifulの設定のアクセスの先頭にあるこのワークスペースの IDでIDを確認できます。ワークスペースのメンバーでないユーザーには組織がこれを設定したことが表示され、招待によってワークスペースに参加します。そのコンピューターでは、本人のワークスペースもほかのワークスペースも開きません。 |
AutoUpdate | 0または1 | 0:Maxifulはアップデートの確認、ダウンロード、インストールを行わず、設定画面には組織がアップデートをインストールすると表示されます。新しいインストーラーは毎回管理者が配布します(「アップデート」を参照)。1:ポリシーがない場合と同じく、Maxifulが自動でアップデートします。 |
OwnerSwitches | それぞれ0または1 | 下記のオーナーのスイッチを名前で指定します。0はオフ、1はオンで、オーナーの選択より優先されます。設定しないスイッチは、引き続きオーナーが選べます。値を削除すると、オーナー自身の選択(オーナーが選んでいない場合はMaxifulの既定の設定)に戻ります。設定した値と同じく、アシスタントに反映されるのはMaxifulの次回起動時です。 |
オーナーのスイッチ
| 名前 | Maxifulのスイッチ | 場所 |
|---|---|---|
terminal | このコンピューターでターミナルを開く | アクセス(Macのみ) |
private-network | このコンピューターとネットワーク上のページをアシスタントに開かせる | アクセス |
pane-reach | アシスタントのペインでコードを実行し、Maxiful の外にアクセスできるようにする | アクセス |
claude-code-background | Claude Code の長いコマンドをバックグラウンドで続ける | アクセス |
session-reach | このコンピューターのすべての会話をアシスタントが見られるようにする(過去の作業から学べます) | アクセス |
model-costs | モデルの費用をドルで表示する | 詳細設定 |
next-prompt | 次のメッセージを提案する | 詳細設定 |
checkin-whole-conversation | チェックインで会話全体を読む | 詳細設定 |
voice-notes | 音声メモを文字起こしする | 音声とオーディオ |
Maxifulは数値のほか、文字列の0、1、true、falseも0または1として読み取ります。読み取れない値は適用されず、Maxifulの設定の組織が設定にその名前が表示されます。読み取れない値の例:0または1を指定する箇所のその他の文字列、別のレジストリ型の値(REG_QWORD、REG_EXPAND_SZ、REG_BINARY)、OwnerSwitches以下の不明な名前。Windowsでは、HKLMとHKCUのどちらでも、ポリシーキーとそのサブキー以下のすべての値にこれが当てはまります。
Windowsの場合
MaxifulはHKLM\SOFTWARE\Policies\Maxiful、次にHKCU\SOFTWARE\Policies\Maxifulを読み取ります。同じ値がある場合はHKLMの値がHKCUより優先されます。WorkspaceはREG_SZ、AutoUpdateはREG_DWORDです。オーナーの各スイッチはOwnerSwitchesサブキー以下のREG_DWORDで、名前は表のとおりです。次のADMXとADMLの組み合わせは、まさにこれらの値を書き込みます。ポリシー定義ストアにmaxiful.admxとen-US\maxiful.admlとして保存するか、インポートされた管理用テンプレートとしてIntuneにインポートしてください。
maxiful.admx
<?xml version="1.0" encoding="utf-8"?>
<policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<policyNamespaces>
<target prefix="maxiful" namespace="Maxiful.Policies" />
</policyNamespaces>
<resources minRequiredRevision="1.0" />
<supportedOn>
<definitions>
<definition name="SUPPORTED_Maxiful" displayName="$(string.SUPPORTED_Maxiful)" />
</definitions>
</supportedOn>
<categories>
<category name="Maxiful" displayName="$(string.Maxiful)" />
<category name="OwnerSwitches" displayName="$(string.OwnerSwitches)">
<parentCategory ref="Maxiful" />
</category>
</categories>
<policies>
<policy name="Workspace" class="Both" displayName="$(string.Workspace)" explainText="$(string.Workspace_Explain)" presentation="$(presentation.Workspace)" key="SOFTWARE\Policies\Maxiful">
<parentCategory ref="Maxiful" />
<supportedOn ref="SUPPORTED_Maxiful" />
<elements>
<text id="Workspace" valueName="Workspace" maxLength="128" required="true" />
</elements>
</policy>
<policy name="AutoUpdate" class="Both" displayName="$(string.AutoUpdate)" explainText="$(string.AutoUpdate_Explain)" key="SOFTWARE\Policies\Maxiful" valueName="AutoUpdate">
<parentCategory ref="Maxiful" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_PrivateNetwork" class="Both" displayName="$(string.OwnerSwitch_PrivateNetwork)" explainText="$(string.OwnerSwitch_PrivateNetwork_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="private-network">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_PaneReach" class="Both" displayName="$(string.OwnerSwitch_PaneReach)" explainText="$(string.OwnerSwitch_PaneReach_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="pane-reach">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_ClaudeCodeBackground" class="Both" displayName="$(string.OwnerSwitch_ClaudeCodeBackground)" explainText="$(string.OwnerSwitch_ClaudeCodeBackground_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="claude-code-background">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_SessionReach" class="Both" displayName="$(string.OwnerSwitch_SessionReach)" explainText="$(string.OwnerSwitch_SessionReach_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="session-reach">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_ModelCosts" class="Both" displayName="$(string.OwnerSwitch_ModelCosts)" explainText="$(string.OwnerSwitch_ModelCosts_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="model-costs">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_NextPrompt" class="Both" displayName="$(string.OwnerSwitch_NextPrompt)" explainText="$(string.OwnerSwitch_NextPrompt_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="next-prompt">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_CheckinWholeConversation" class="Both" displayName="$(string.OwnerSwitch_CheckinWholeConversation)" explainText="$(string.OwnerSwitch_CheckinWholeConversation_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="checkin-whole-conversation">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_VoiceNotes" class="Both" displayName="$(string.OwnerSwitch_VoiceNotes)" explainText="$(string.OwnerSwitch_VoiceNotes_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="voice-notes">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
</policies>
</policyDefinitions>
en-US\maxiful.adml
<?xml version="1.0" encoding="utf-8"?>
<policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<displayName>Maxiful</displayName>
<description>The settings an IT department sets for Maxiful.</description>
<resources>
<stringTable>
<string id="Maxiful">Maxiful</string>
<string id="OwnerSwitches">The owner's switches</string>
<string id="SUPPORTED_Maxiful">Maxiful for Windows</string>
<string id="Workspace">Open only this workspace</string>
<string id="Workspace_Explain">Maxiful on this computer opens only the workspace with this ID. The workspace's owner finds the ID in Maxiful's settings, under Access. A person who is not a member of the workspace is asked to join it by invitation, and no other workspace opens on this computer.</string>
<string id="AutoUpdate">Let Maxiful update itself</string>
<string id="AutoUpdate_Explain">Disabled: Maxiful does not look for, download or install updates, and you install each new version yourself. Enabled or not configured: Maxiful updates itself.</string>
<string id="OwnerSwitch_PrivateNetwork">Let assistants open pages on this computer and my network</string>
<string id="OwnerSwitch_PrivateNetwork_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_PaneReach">Let assistants' panes run code and reach outside Maxiful</string>
<string id="OwnerSwitch_PaneReach_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_ClaudeCodeBackground">Let Claude Code keep long commands running in the background</string>
<string id="OwnerSwitch_ClaudeCodeBackground_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_SessionReach">Assistants can look through all conversations on this computer (so they learn from past work)</string>
<string id="OwnerSwitch_SessionReach_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_ModelCosts">Show model costs in dollars</string>
<string id="OwnerSwitch_ModelCosts_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Advanced.</string>
<string id="OwnerSwitch_NextPrompt">Suggest my next message</string>
<string id="OwnerSwitch_NextPrompt_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Advanced.</string>
<string id="OwnerSwitch_CheckinWholeConversation">Check-ins read the whole conversation</string>
<string id="OwnerSwitch_CheckinWholeConversation_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Advanced.</string>
<string id="OwnerSwitch_VoiceNotes">Transcribe voice notes</string>
<string id="OwnerSwitch_VoiceNotes_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Voice and audio.</string>
</stringTable>
<presentationTable>
<presentation id="Workspace">
<textBox refId="Workspace">
<label>Workspace ID</label>
</textBox>
</presentation>
</presentationTable>
</resources>
</policyDefinitionResources>
Macの場合
Maxifulは自身のドメインai.maxiful.desktopの管理対象環境設定を読み取ります。これは構成プロファイルが強制設定としてインストールするものです(Appleの管理対象環境設定ペイロードcom.apple.ManagedClient.preferences)。有効なのはプロファイルが設定した値だけで、defaults writeなどほかの方法で書き込んだ値は読み取られません。Workspaceは文字列、AutoUpdateは整数(またはブール値)、OwnerSwitchesは表の名前を持つ辞書です。次のプロファイル例は、コンピューターを1つのワークスペースに限定し、アップデートを管理者に任せ、ターミナルとプライベートネットワークのスイッチをオフにし、モデルの費用を表示します。ワークスペースID、識別子、UUIDはご自身のものに置き換えてください。
maxiful.mobileconfig
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadType</key><string>Configuration</string>
<key>PayloadVersion</key><integer>1</integer>
<key>PayloadIdentifier</key><string>com.example.maxiful</string>
<key>PayloadUUID</key><string>00000000-0000-0000-0000-000000000001</string>
<key>PayloadDisplayName</key><string>Maxiful</string>
<key>PayloadScope</key><string>System</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key><string>com.apple.ManagedClient.preferences</string>
<key>PayloadVersion</key><integer>1</integer>
<key>PayloadIdentifier</key><string>com.example.maxiful.settings</string>
<key>PayloadUUID</key><string>00000000-0000-0000-0000-000000000002</string>
<key>PayloadDisplayName</key><string>Maxiful settings</string>
<key>PayloadContent</key>
<dict>
<key>ai.maxiful.desktop</key>
<dict>
<key>Forced</key>
<array>
<dict>
<key>mcx_preference_settings</key>
<dict>
<key>Workspace</key><string>YOUR-WORKSPACE-ID</string>
<key>AutoUpdate</key><integer>0</integer>
<key>OwnerSwitches</key>
<dict>
<key>terminal</key><false/>
<key>private-network</key><false/>
<key>model-costs</key><true/>
</dict>
</dict>
</dict>
</array>
</dict>
</dict>
</dict>
</array>
</dict>
</plist>
アップデート
Maxifulは起動時と6時間ごとに、maxiful.aiで新しいバージョンを確認します。ユーザーはアップデートして再起動かあとでを選びます。Maxifulの新しいバージョンには新しいOpenClawランタイムが含まれる場合があり、その場合Maxifulはnpmを使ってregistry.npmjs.orgからそのユーザーのランタイムを更新します。
WindowsでもMacでも、新しいバージョンをすべて管理者がインストールし、Maxifulには確認させない場合は、AutoUpdateを0に設定します(管理対象の設定を参照)。Maxifulには、組織がアップデートをインストールすると表示されます。
Windowsの場合
新しいバージョンは署名済みのインストーラーで、実行前にアプリに組み込まれた鍵と照合され、アップデートはインストーラーをパッシブモードで実行します。上記のとおり、/Sを付けて新しいインストーラーを毎回管理者が配布することもできます。
Macの場合
新しいバージョンはアプリの署名済みアーカイブで、使用前にアプリに組み込まれた鍵と照合されます。ユーザーのアカウントがそのコピーを変更できる場合は、アプリをその場で置き換えます。
ユーザーが変更できないコピー。/Applications/Maxiful.appがシステムの所有(所有者がroot)で、ユーザーのアカウントが変更できない場合、Maxifulは自分でアップデートしません。何もダウンロードせず、管理者パスワードを求めず、アップデートして再起動も表示しません。アップデートを表示する箇所では、新しいバージョンがあること、このMacのアップデートは組織がインストールすることを表示します。新しいバージョンはMDMで毎回配布してください。Intuneでは同じアプリにディスクイメージをアップロードし、Jamf ProではComposerでパッケージを作成して上記のとおり展開します。管理者アカウントが変更できるコピーは、ほかのMacと同じくそのアカウントで自動的にアップデートされます。
Maxifulの削除
すべてを削除する(本人が操作): Maxifulの設定でこのコンピュータからMaxifulを削除を選びます。バックグラウンドプロセスと、サインイン時にそれを起動する仕組み(Windowsではタスクスケジューラのタスク、MacではLaunchAgent)を停止し、インストールのデータと資格情報を削除します。インストール時に入れたNode.jsランタイムも削除します。ただし、同じコンピューター上の別のインストールがまだ使っている場合は残します。続いてWindowsでは、Maxifulの終了時にアンインストーラーを起動します。Macでは、本人のアカウントに権限があればアプリをゴミ箱に移動します。本人のドキュメントには手を加えません。
Windowsの場合
すべてをサイレントで削除する: %LOCALAPPDATA%\Maxiful\uninstall.exe /S /REMOVEALLは、そのインストールのユーザーに代わってこのコンピュータからMaxifulを削除を画面操作なしで実行し、続けてアプリを削除します。元に戻すことはできません。削除した項目と削除できなかった項目は、%LOCALAPPDATA%\ai.maxiful.desktop\logsのremoval-report.jsonに記録されます。
/REMOVEALLを付けない場合: 上記のIntuneの手順で実行する%LOCALAPPDATA%\Maxiful\uninstall.exe /Sは、アプリ、ショートカット、チームの常駐タスク、Maxifulが追加したDefenderの除外設定を削除します(除外設定についてはWindowsが再びプロンプトを表示することがあります)。また、アシスタントのバックグラウンドプロセスを停止し、サインイン時にそれを起動する仕組みも削除します。ランタイムとインストールのデータは残ります。何かが実行中のまま残ったかどうかは、アプリの他のログと同じ場所にあるinstaller.logで確認できます。
Macの場合
まず、ユーザーごとにこのコンピュータからMaxifulを削除を実行してください。アプリだけを削除すると、そのユーザーのバックグラウンドゲートウェイが、保持しているデータごと実行されたまま残ります。そのあとで、MDMを使って/Applications/Maxiful.appを削除します。たとえばIntuneのUninstall割り当てを使えます。