- OpenClawの公式ドキュメントには現在Windows削除ガイドが存在しない――Linuxの
systemctl disableやrm -rfコマンドはWindowsでは適用できず、専用の削除ワークフローが必要 openclaw gateway uninstallはWindowsのスケジュールタスクを完全にクリアできない。残存するスケジュールタスクは起動のたびに存在しないGatewayの起動を試み、エラーイベントを生成する- 完全な削除には6つのステップが必要:プロセス停止 -> スケジュールタスクの登録解除 -> npmグローバルアンインストール -> 設定ディレクトリの削除 -> ログとキャッシュの削除 -> クリーンアップの確認。いずれかのステップを省略すると残存ファイルが残る
- Windowsネイティブ環境でのOpenClawの残存物は少なくとも4箇所に散在する:
%USERPROFILE%\.openclaw\、%APPDATA%\npm\、%LOCALAPPDATA%\openclaw-logs\、およびWindowsタスクスケジューラ
1. Windows専用の削除ガイドが必要な理由
OpenClaw Windowsネイティブインストールを完了した後、次に自然に浮かぶ疑問は:使い続けないと決めた場合、完全に削除するにはどうすればよいか?ということである。
これは一見シンプルな質問だが、実際のテストでは状況が予想以上に複雑であることが判明した。OpenClawの公式ドキュメント[1]にはLinux環境の削除手順(systemctl stop、systemctl disable、rm -rf ~/.openclaw)が記載されているが、Windows削除ガイドは一切存在しない。さらに重要なことに、OpenClawがWindowsで使用する永続化メカニズム(スケジュールタスク)はLinux(systemd)とは根本的に異なるため[3]、Linuxの削除手順を直接適用することはできない。
実際の削除テスト中に複数の落とし穴に遭遇した:openclaw gateway uninstallコマンドが成功したように見えて実際にはスケジュールタスクの残存物を残していた、非管理者権限ではスケジュールタスクを削除できない、削除後もGatewayプロセスが孤児プロセスとして稼働し続けるなど。本記事では、再現可能なWindows削除ワークフローを提供するために、フィールドでの経験を完全に記録する。
2. 削除前の確認事項
削除を開始する前に、以下を確認する:
2.1 インストール方法の確認
本記事の削除ワークフローは以下のインストール方法に適用される:
- PowerShellワンラインインストール(
iwr -useb https://openclaw.ai/install.ps1 | iex) - npmグローバルインストール(
npm install -g openclaw)
WSL2経由でインストールした場合は、Windowsデプロイ完全ガイドのLinux削除手順を参照してほしい。
2.2 重要なデータのバックアップ
削除前に、保持が必要なデータがないか確認する:
# OpenClaw設定ファイルを確認
type %USERPROFILE%\.openclaw\openclaw.json
# 会話履歴を確認
dir %USERPROFILE%\.openclaw\sessions\
カスタムAPIキー、Telegram Bot Token、その他の統合設定をopenclaw.jsonに設定している場合は、先にバックアップコピーを取ることを推奨する。
3. 6ステップ完全削除ワークフロー
以下の6ステップは順番通りに実行する必要がある。すべての操作で十分な権限を確保するため、管理者としてPowerShellを開くことを推奨する。
ステップ1:デーモンとGatewayプロセスの停止
まず、実行中のすべてのOpenClawプロセスを停止する:
openclaw daemon stop
テスト時の出力は以下の通りであった:
Stopped Scheduled Task: OpenClaw Gateway
停止後、openclaw gateway statusを実行して状態を確認する。以下のレスポンスが表示された:
Service: Scheduled Task (registered)
Gateway: bind=loopback (127.0.0.1), port=18789 (service args)
Runtime: stopped (state Ready, last run time 2026/2/27 06:43:26)
RPC probe: ok
Service is loaded but not running (likely exited immediately).
キーフレーズに注目:「Service is loaded but not running」――プロセスは停止したが、スケジュールタスクは登録状態のままである。これがステップ2で対処する内容である。
openclaw daemon stopが応答しない場合や失敗する場合は、WMICでGatewayプロセスを見つけて強制終了できる:
# openclaw関連のNode.jsプロセスを検索
WMIC process where "name='node.exe'" get ProcessId,CommandLine | findstr /i "openclaw"
# 出力例:
# "C:\Program Files\nodejs\node.exe" ...openclaw\dist\index.js gateway --port 18789 26472
# 強制終了
taskkill /F /PID 26472
注意:Start-JobでGatewayをバックグラウンドで実行した場合は、先にPowerShell Jobを停止する必要がある:
# バックグラウンドJobの一覧
Get-Job
# Jobの停止と削除
Get-Job | Stop-Job
Get-Job | Remove-Job
ステップ2:スケジュールタスクの登録解除
これはWindows削除プロセスで最もエラーが発生しやすいステップである。openclaw gateway installを一度でも実行していれば、システムに自動起動スケジュールタスクが存在する[3]。
# まずOpenClawの組み込みアンインストールコマンドを試す
openclaw daemon uninstall
# または
openclaw gateway uninstall
テスト時、両方のコマンドを試したが、どちらも完全にクリーンアップできなかった:
$ openclaw daemon uninstall
Stopped Scheduled Task: OpenClaw Gateway
Removed task script: C:\Users\HYC\.openclaw\gateway.cmd
Gateway service still loaded after uninstall.
$ openclaw gateway uninstall
Stopped Scheduled Task: OpenClaw Gateway
Task script not found at C:\Users\HYC\.openclaw\gateway.cmd
Gateway service still loaded after uninstall.
重要なエラーメッセージに注目:「Gateway service still loaded after uninstall」。スクリプトファイルは削除されたが、Windowsスケジュールタスクの登録はまだ存在することを意味する。
管理者としてPowerShellを開き、Unregister-ScheduledTaskで手動登録解除する必要がある[4]:
# 管理者PowerShellで実行
Unregister-ScheduledTask -TaskName "OpenClaw Gateway" -Confirm:$false
スケジュールタスクが実際に削除されたことを確認する:
# クリアされていれば、このコマンドは結果を返さない
Get-ScheduledTask | Where-Object {$_.TaskName -like "*OpenClaw*"}
ステップ3:npmグローバルアンインストール
npm uninstall -g openclaw
テスト時の出力:
removed 682 packages in 7s
正常に削除されたことを確認する:
openclaw --version
# 'openclaw' is not recognizedと表示されるはず
openclaw --versionがまだ動作する場合、システムに複数のNode.jsインストール(例:nvmで管理された複数バージョン)がある可能性があり、各Node.jsバージョンでnpm uninstall -g openclawを実行する必要がある。
ステップ4:設定ディレクトリの削除
OpenClawのすべての設定、セッションデータ、OAuthトークンはユーザーディレクトリ下に保存されている[4]:
# OpenClaw設定ディレクトリを削除
Remove-Item -Recurse -Force "$env:USERPROFILE\.openclaw"
# 確認
Test-Path "$env:USERPROFILE\.openclaw"
# Falseを返すはず
テスト時、このディレクトリの完全な内容は以下の通りであった:
$ ls ~/.openclaw/
agents/ canvas/ completions/ credentials/ cron/ devices/
identity/ logs/ memory/ telegram/ workspace/
openclaw.json openclaw.json.bak openclaw.json.bak.1
openclaw.json.bak.2 openclaw.json.bak.3 update-check.json
主要な内容:
openclaw.json(および複数の.bakバックアップ)――メイン設定ファイル、APIキー、Telegram Token、Gateway設定を含むagents/、canvas/、completions/――エージェント設定と会話履歴credentials/、identity/――認証情報とアイデンティティ情報telegram/――Telegram Bot連携データmemory/――セマンティックメモリストレージcron/――スケジュールタスク設定
ステップ5:ログとキャッシュの削除
WindowsでのOpenClawのログとキャッシュは以下の場所に散在している可能性がある:
テスト時、OpenClawのログファイルは/tmp/openclaw/(Git Bash環境)またはC:\tmp\openclaw\(Windowsネイティブパス)に位置していた:
# Git Bash経由でインストール/使用した場合
Remove-Item -Recurse -Force "C:\tmp\openclaw" -ErrorAction SilentlyContinue
# 標準Windowsログの場所
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\openclaw-logs" -ErrorAction SilentlyContinue
# グローバルnode_modulesに残存物がないか確認
dir "$env:APPDATA\npm\node_modules\" | findstr /i "openclaw"
node_modulesにまだopenclawディレクトリが存在する場合は、手動で削除する:
Remove-Item -Recurse -Force "$env:APPDATA\npm\node_modules\openclaw" -ErrorAction SilentlyContinue
ステップ6:完全削除の確認
以下のチェックリストを実行して、すべての残存物がクリアされたことを確認する:
# 1. コマンドが存在しないことを確認
openclaw --version
# 期待値:'openclaw' is not recognized
# 2. 設定ディレクトリが削除されたことを確認
Test-Path "$env:USERPROFILE\.openclaw"
# 期待値:False
# 3. スケジュールタスクが削除されたことを確認
schtasks /Query /TN "OpenClaw*" 2>$null
# 期待値:ERROR: The system cannot find the path specified.
# 4. 残存プロセスがないことを確認
tasklist | findstr /i "openclaw"
# 期待値:出力なし
# 5. ログディレクトリが削除されたことを確認
Test-Path "$env:LOCALAPPDATA\openclaw-logs"
# 期待値:False
5つすべてのチェックがパスすれば、OpenClawはWindowsシステムから完全に削除されている。
4. 落とし穴ログ
以下は、実際の削除テスト中に遭遇した具体的な問題とその解決策である:
落とし穴#1:daemon/gateway uninstallの両方がスケジュールタスクを完全にクリアできない
症状:openclaw daemon uninstallとopenclaw gateway uninstallを実行すると、両方とも「Gateway service still loaded after uninstall」と出力し、PowerShellクエリでスケジュールタスクがまだ見つかる:
$ powershell -Command 'Get-ScheduledTask | Where-Object {$_.TaskName -like "*OpenClaw*"}'
TaskPath TaskName State
-------- -------- -----
\ OpenClaw Gateway Ready
根本原因:OpenClawのアンインストールコマンドはgateway.cmdスクリプトファイルを削除するが、内部のschtasks /Delete呼び出しは管理者権限がないとサイレントに失敗し、Windowsタスクスケジューラの登録を実際に削除できない。
解決策:管理者としてPowerShellを開き、手動で登録解除する[4]:
# 管理者PowerShell
Unregister-ScheduledTask -TaskName "OpenClaw Gateway" -Confirm:$false
落とし穴#2:管理者権限なしのHRESULT 0x80070005エラー
症状:非管理者PowerShellでUnregister-ScheduledTaskを実行すると以下のエラーが発生する:
Unregister-ScheduledTask : Access is denied.
+ CategoryInfo : PermissionDenied: (PS_ScheduledTask:Root/Microsoft/...T_ScheduledTask)
[Unregister-ScheduledTask], CimException
+ FullyQualifiedErrorId : HRESULT 0x80070005,Unregister-ScheduledTask
根本原因:openclaw gateway installは管理者権限でスケジュールタスクを作成しており[3]、削除にも管理者権限が必要である。HRESULT 0x80070005はWindowsのACCESS_DENIEDエラーコードである。
解決策:システム管理者としてPowerShellを再度開く:
# PowerShellを右クリック -> 管理者として実行
# または既存のPowerShellから単一コマンドを昇格
Start-Process powershell -Verb RunAs -ArgumentList "-Command Unregister-ScheduledTask -TaskName 'OpenClaw Gateway' -Confirm:`$false"
落とし穴#3:孤児Gatewayプロセスがポート18789を占有
症状:npm uninstall -g openclawを実行した後も、GatewayのNode.jsプロセスがバックグラウンドで動作し続け、ポート18789を占有している。
根本原因:npmパッケージを削除する前にGatewayプロセスを停止しなかった場合、Node.jsの子プロセスが孤児プロセスになる。テスト時、WMICでこのプロセスを発見した:
$ WMIC process where "name='node.exe'" get ProcessId,CommandLine | findstr /i "openclaw"
"C:\Program Files\nodejs\node.exe" ...\openclaw\dist\index.js gateway --port 18789 26472
解決策:
# プロセスを強制終了
taskkill /F /PID 26472
# SUCCESS: The process with PID 26472 has been terminated.
これがステップ1(プロセス停止)をステップ3(npm削除)の前に必ず実行すべき理由である。
落とし穴#4:Git Bashでのパスエスケープ問題
症状:Git Bashでschtasksを実行すると不可解なエラーが発生する:
$ schtasks /Delete /TN "OpenClaw Gateway" /F
ERROR: Invalid argument/option - 'C:/Program Files/Git/Delete'.
Type "SCHTASKS /QUERY /?" for usage.
根本原因:Git Bash(MSYS2)は/で始まる引数を自動的にWindowsパスに変換する[5]。/DeleteがC:/Program Files/Git/Deleteと解釈され、schtasksは完全に間違ったパラメータを受け取ることになる。cmd経由でルーティングしても、クォートの処理で問題が発生する:
$ cmd //c 'schtasks /Delete /TN "OpenClaw Gateway" /F'
ERROR: Invalid argument/option - 'Gateway"'.
Type "SCHTASKS /DELETE /?" for usage.
解決策:
# 方法1:ダブルスラッシュでパス変換をバイパス
schtasks //Delete //TN "OpenClaw Gateway" //F
# 方法2:パス変換を一時的に無効化
MSYS_NO_PATHCONV=1 schtasks /Delete /TN "OpenClaw Gateway" /F
# 方法3(推奨):Git BashからPowerShellを直接呼び出す
powershell.exe -Command "Unregister-ScheduledTask -TaskName 'OpenClaw Gateway' -Confirm:`$false"
# 方法4(最善):Git Bashの代わりにPowerShellまたはCMDを使用する
5. Windows vs Linux削除の比較
| ステップ | Windows(ネイティブ) | Linux / WSL2 |
|---|---|---|
| サービス停止 | openclaw gateway stop + taskkill | systemctl stop openclaw-gateway |
| サービス登録解除 | Unregister-ScheduledTask(管理者が必要) | systemctl --user disable openclaw-gateway |
| パッケージ削除 | npm uninstall -g openclaw | npm uninstall -g openclaw |
| 設定の削除 | Remove-Item ~\.openclaw | rm -rf ~/.openclaw |
| ログの削除 | Remove-Item C:\tmp\openclaw | rm -rf /tmp/openclaw |
| 確認 | Get-ScheduledTask + WMIC | systemctl list-units + ps aux |
| 管理者権限の要否 | はい(スケジュールタスクの削除に必要) | いいえ(systemctl --user) |
| 主な落とし穴 | スケジュールタスクの残存 | systemd unitファイルの残存 |
6. 削除後チェックリスト
以下は完全な削除後確認チェックリストである。削除完了後に各項目を確認することを推奨する:
| チェック項目 | 確認コマンド | 期待結果 |
|---|---|---|
| openclawコマンド | openclaw --version | not recognized |
| 設定ディレクトリ | Test-Path ~\.openclaw | False |
| スケジュールタスク | schtasks /Query /TN "OpenClaw*" | path not found |
| 残存プロセス | netstat -ano | findstr 18789 | 出力なし |
| ログディレクトリ | Test-Path $env:LOCALAPPDATA\openclaw-logs | False |
| npmグローバルパッケージ | npm list -g openclaw | empty / not found |
| スタートアップフォルダ | dir "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup" | findstr openclaw | 出力なし |
7つすべてのチェックがパスすれば、WindowsシステムからOpenClawのすべての痕跡が完全にクリアされている。
まとめ
削除ワークフロー全体を振り返ると、核心的な問題は一文に要約できる:OpenClawのインストールはコマンド1つだが、削除には6ステップ必要――そして公式ドキュメントはそのうち1ステップしかカバーしていない。
npm uninstall -g openclawはOpenClawの実行可能ファイルを削除するが、設定ディレクトリはクリアせず、スケジュールタスクの登録を解除せず、既に動作中のGatewayプロセスも停止しない。これらの残存物はディスクスペースを占有するだけでなく、起動のたびにエラーイベントを生成する――スケジュールタスクが既に存在しないプログラムの起動を試み、Windowsイベントビューアーに多数の失敗レコードが蓄積される。
AIエージェントツールを評価している技術チームにとって、「安全に削除できること」は「簡単にインストールできること」と同様に重要である。クリーンにアンインストールできないツールは、技術的負債の評価における不確実性を増大させる[2]。本ガイドがWindows環境でOpenClawを試すリスクを軽減することを願っている――完全に削除できることが分かっていれば、実験を始めやすくなる。
本記事でカバーされていない削除中の問題に遭遇した場合は、当社リサーチチームにお気軽にご連絡いただきたい。削除プロセスの公式改善を含め、OpenClawのWindowsプラットフォームサポートの進捗を引き続き追跡していく。



