MENU

【解決】Windows Defender Firewallが「パラメーターが間違っています(ID 7024)」で停止する原因と対処法

Windows 11 や Windows Server 2022 で、「Windows Defender Firewall」サービスが勝手に停止してしまうトラブルが発生していませんか?

イベントビューアーを確認すると、イベントID 7024 で「パラメーターが間違っています」というエラーが記録されている場合、それは Windows の不具合(レジストリの肥大化)が原因です。

この記事では、Microsoft 公式情報に基づき、この問題の原因と、特別な権限を使って修復する手順を分かりやすく解説します。

目次

1. 発生する現象と確認方法

以下の条件に当てはまる場合、この不具合に該当する可能性が高いです。

  • 現象: Windows Defender Firewall サービスが起動しない、または繰り返し停止する。
  • 対象OS: Windows 11、Windows Server 2022
  • イベントログ: 「システム」ログに以下のエラーが記録される。

ソース: Service Control Manager

イベント ID: 7024

レベル: エラー

説明: Windows Defender Firewall サービスは、次のサービス固有エラーで終了しました:

パラメーターが間違っています。

2. 原因:レジストリの肥大化

このエラーの根本原因は、ファイアウォールの設定を保存している以下のレジストリ値が、異常に大きくなりすぎている(肥大化している)ことです。

  • レジストリキー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mpssvc\Parameters\AppCs
  • 問題の値: DebugedLoopbackApps

この値が大きくなりすぎると、サービス起動時に読み込みに失敗し、「パラメーターが間違っています」というエラーで強制終了してしまいます。 (※レジストリエディターで見ても、データが大きすぎて表示できない(空白になる)場合があります)

DebugedLoopbackApps
DebugedLoopbackApps

3. 対処法:システム権限で値を削除する

解決策は、この肥大化した DebugedLoopbackApps 値を削除することです。(削除しても、OS が必要な時に自動で再作成するため問題ありません)

ただし、この場所は通常の管理者権限では削除できないように保護されています。そのため、Microsoft が提供するツールを使って「SYSTEM 権限」で作業を行う必要があります。

事前準備(公式ツールとスクリプトの入手

レジストリの操作を間違えると、システムが起動できなくなるなどの不具合が起きる可能性があります。事前にシステムの復元などでバックアップを取り、自己責任で行うようお願いします。

PCが突然壊れても慌てないために。大切な写真やデータを守るなら、定番のバックアップソフトが一本あると安心です。

1.PSTools のダウンロード: Microsoft 公式の PsExec – Sysinternals サイト から PSTools.zip をダウンロードし、解します。

C:\temp\PSTools に配置してください。(Cドライブ直下にtempフォルダーを作成してください )

C:\temp フォルダー
C:\temp フォルダー

2.権限変更スクリプトの準備: レジストリの所有者を変更するスクリプト(ChangeOwnerAppCs.ps1RevertOwnerAppCs.ps1)を C:\temp に用意します。

必ず先に拡張子を表示しておいてください。拡張子の表示方法

権限変更スクリプトの入手

Microsoft のサポートブログから、修復に必要なスクリプトをダウンロードします。

  1. 以下のリンクを開きます。
  2. ページ内のリンクから、以下の 2つのファイルをダウンロードし、C:\temp に保存します。
    • ChangeOwnerAppCs.txt
    • RevertOwnerAppCs.txt
  3. 保存したファイルの拡張子を .txt から .ps1 に変更します。
    • ChangeOwnerAppCs.ps1
    • RevertOwnerAppCs.ps1

※追記(2025/11/21):スクリプトの掲載方法について 記事公開当初、利便性のためスクリプトのコードをそのまま掲載しておりましたが、権利関係のリスクを回避し、より適切な形で情報を提供するため、「公式ブログへのリンク」へと修正いたしました。

(既にコードを使用された方におかれましては、スクリプト自体の動作には全く問題ございませんのでご安心ください。)

2025/11/22 追記:【技術解説】このスクリプトは何をしているのか?

Microsoft が提供しているこれら 2つのスクリプトは、単なるレジストリ操作ではなく、Windows の深部にある API を呼び出して「特権の強制行使」を行っています。具体的にどのような処理が行われているのか解説します。

1. 共通の処理:特権の有効化 (RtlAdjustPrivilege)

[Win32Api.NtDll]::RtlAdjustPrivilege(9, ...) という行が、特権を有効にしている箇所です。 ここで指定されている数値 9 は、Windows の内部コードで SeTakeOwnershipPrivilege(所有権取得特権) を意味します。 通常はオフになっているこの強力な特権を強制的に有効化(ON)にすることで、アクセス拒否されるレジストリキーの「所有権」を書き換えられるように準備しています。

2. ChangeOwnerAppCs.ps1(所有権の奪取)の動作

このスクリプトは、以下の 3段階で「鍵」を壊して開けます。

  1. 所有者の変更: まず、レジストリキーの「所有者(Owner)」を、現在の NT SERVICE\mpssvc(ファイアウォールサービスのシステム内の内部的な名前)から、Administrators(管理者グループ)に強制変更します。
  2. フルコントロールの付与: 所有者になったことで権限を変更できるようになったため、自分自身(Administrators)に対して「フルコントロール(読み書き自由)」の権限を与えます。
  3. 結果: これにより、次の手順で reg delete コマンドを使った削除が可能になります。
3. RevertOwnerAppCs.ps1(権限の復元)の動作

作業が終わった後、セキュリティを元に戻すためのスクリプトです。

  1. SDDL による定義: O:SYG:SYD:PAI... という暗号のような文字列(SDDL)を使って、「元の正しいセキュリティ設定」を定義しています。
  2. 所有者の復元: 所有者を再び NT SERVICE\mpssvc に戻し、アクセス権限も元の厳格な状態に書き戻します。

これにより、ファイアウォールのセキュリティレベルを下げたままにすることなく、安全に作業を完了させています。

実行手順

2025/11/21 追記:下記の手順を自動的に実行するバッチファイルを作成しました。

1.スタートボタンを右クリック>「ターミナル(管理者)」をクリックして PowerShell を開き、下記のコマンドを実行して PSTools のフォルダーへ移動します。

cd C:\temp\PSTools

2.下記のコマンドを実行して SYSTEM 権限で PowerShell を起動します。

.\psexec.exe -s -i powershell.exe

初めて PsExec を実行する場合、下記の画面が表示され、PsExec ライセンス契約に同意する必要がありますので、「Agree(同意する)」をクリックしてください。

PsExec License Agreement
PsExec License Agreement

すると、新しい PowerShell ウィンドウが開きます。

3.新しい PowerShell ウィンドウに以下のコマンドを順番に入力して実行し、レジストリを削除・修復します。

  • 1.Set-ExecutionPolicy bypass -Scope Process -Force
    • 説明:スクリプト実行ポリシーの一時的な許可をします。(現在の PowerShell ウィンドウが開いている間のみ許可)
  • 2.C:\temp\ChangeOwnerAppCs.ps1
    • 説明:レジストリキーの所有者を変更します。(削除できるようにするため)
  • 3.reg export "HKLM\System\CurrentControlSet\Services\mpssvc\Parameters\AppCs" fw.reg
    • 説明:現在のキーをバックアップします。
  • 4.reg delete "HKLM\System\CurrentControlSet\Services\mpssvc\Parameters\AppCs" /v DebugedLoopbackApps /f
    • 説明:問題のレジストリ値を削除します。
  • 5.C:\temp\RevertOwnerAppCs.ps1
    • 説明:レジストリキーの所有者を元に戻します。
Windows PowerShell
Windows PowerShell

4.PC を再起動します。 再起動後、Windows Defender Firewall サービスが正常に「実行中」になっていれば修復完了です。

Windows Defender Firewall 修復ツール(バッチファイル)

上記の事前準備を行ったうえで実行してください。

使用方法:

1.下記のコードをコピーしてメモ帳に貼り付け、Fix_Firewall_Error7024.bat(拡張子「.bat」)などの名前で保存してください。

文字コード「ANSI」で保存してください。文字コード「ANSI」で保存する

@echo off
setlocal

:: ========================================================
::  Windows Defender Firewall 修復ツール
:: ========================================================

:: --- 1. 固定パスの定義 ---
set "WorkDir=C:\temp"
set "PsExecPath=%WorkDir%\PSTools\PsExec.exe"
set "ScriptChange=%WorkDir%\ChangeOwnerAppCs.ps1"
set "ScriptRevert=%WorkDir%\RevertOwnerAppCs.ps1"
set "BackupFile=%WorkDir%\fw_backup.reg"

:: --- 2. 必須ファイルの存在チェック ---
if not exist "%PsExecPath%" goto :Error_PsExec
if not exist "%ScriptChange%" goto :Error_Change
if not exist "%ScriptRevert%" goto :Error_Revert

:: --- 3. 管理者権限の確認と自動昇格 ---
openfiles >nul 2>&1
if %errorlevel% neq 0 (
    echo.
    echo [info] 管理者権限が必要です。
    echo UACプロンプトが表示されたら「はい」を選択してください...
    echo.
    powershell -Command "Start-Process '%~f0' -Verb RunAs"
    exit /b
)

:: --- 4. SYSTEM権限チェックと自己昇格 ---
whoami | find /i "system" >nul
if %errorlevel% neq 0 (
    echo.
    echo [info] SYSTEM権限で新しいウィンドウを開きます...
    echo.
    "%PsExecPath%" -s -i -accepteula -w "%WorkDir%" cmd.exe /k ""%~f0""
    exit /b
)

:: ========================================================
::  ここから先は SYSTEM 権限(C:\temp)で実行されます
:: ========================================================

echo.
echo === 修復プロセスを開始します (SYSTEM権限) ===
echo 作業ディレクトリ: %CD%
echo.

:: --- 5. 権限変更を実行 ---
echo 1. レジストリキーの権限を変更しています...
echo    実行中: ChangeOwnerAppCs.ps1

powershell -NoProfile -ExecutionPolicy Bypass -File "%ScriptChange%"

if %errorlevel% neq 0 goto :Error_Perm
echo [成功]


:: --- 6. バックアップと削除 ---
set "RegKeyPath=HKLM\SYSTEM\CurrentControlSet\Services\mpssvc\Parameters\AppCs"
set "TargetVal=DebugedLoopbackApps"

echo.
echo 2. 現在のレジストリをバックアップしています...
reg export "%RegKeyPath%" "%BackupFile%" /y

echo.
echo 3. 問題の値を削除しています...
reg delete "%RegKeyPath%" /v "%TargetVal%" /f

:: エラーレベルを保存
set "DeleteResult=%errorlevel%"

:: 分岐処理(カッコを使わない方式に変更)
if %DeleteResult% EQU 0 goto :Success_Delete
if %DeleteResult% EQU 1 goto :Skip_Delete

:Error_Delete
echo.
echo [エラー] 削除に失敗しました。
echo アクセスが拒否されたか、予期せぬエラーです。
echo 念のため、権限を元に戻す処理に進みます。
goto :Revert

:Skip_Delete
echo.
echo [情報] 削除対象の値が見つかりませんでした。
echo 既に削除されているか、存在しません。
echo 修復は不要な状態です。権限を元に戻す処理に進みます。
goto :Revert

:Success_Delete
echo.
echo [成功] 肥大化したレジストリ値を削除しました。
goto :Revert

:Revert
:: --- 7. 権限復元を実行 (共通ルート) ---
echo.
echo 4. 権限を元に戻しています...
echo    実行中: RevertOwnerAppCs.ps1

powershell -NoProfile -ExecutionPolicy Bypass -File "%ScriptRevert%"

echo.
echo [完了] すべての作業が完了しました。
echo.
echo PCを再起動して、ファイアウォールが正常か確認してください。
goto :End

:: --- エラーハンドリング ---
:Error_PsExec
echo [エラー] PsExec.exe が見つかりません。
echo 以下の場所に配置してください: %PsExecPath%
pause
exit /b

:Error_Change
echo [エラー] ChangeOwnerAppCs.ps1 が見つかりません。
pause
exit /b

:Error_Revert
echo [エラー] RevertOwnerAppCs.ps1 が見つかりません。
pause
exit /b

:Error_Perm
echo [失敗] 権限の変更スクリプトがエラーを返しました。
echo 処理を中断します。
pause
exit /b

:End
echo.
echo このウィンドウおよび初めに開いたウィンドウは手動で閉じてください。(×ボタンで閉じて構いません)

2.作成したバッチファイルFix_Firewall_Error7024.batをダブルクリックで実行します。

3.「ユーザーアカウント制御」が表示されたら「はい」をクリックします。

4.処理が開始され、

[完了] すべての作業が完了しました。PCを再起動して、ファイアウォールが正常か確認してください。このウィンドウおよび初めに開いたウィンドウは手動で閉じてください。(×ボタンで閉じて構いません)

コマンドプロンプト
コマンドプロンプト

と表示されたらコマンドプロンプトのウィンドウ 2つを終了し、PC を再起動してください。

5. 再起動後、Windows Defender Firewall サービスが正常に「実行中」になっていれば修復完了です。

まとめと注意点

  • Windows 11 ユーザーの方: この不具合(肥大化する問題)自体は、Windows 11では既に修正されています。一度この手順で削除すれば、再発することはありません。
  • Windows Server 2022 ユーザーの方: 根本的な修正がされていない場合、再発する可能性があります。その際は再度同じ手順で削除が必要です。

ファイアウォールが停止するとセキュリティリスクが高まるだけでなく、Microsoft Store の更新など関連機能も動かなくなる場合があります。このエラーが出ている場合は、早めの対処をおすすめします。

【参考元 / 情報ソース】

Microsoft Japan Windows Technology Support Blog:
Windows Defender Firewall サービスが「パラメーターが間違っています」のエラーで繰り返し終了する

この記事が「役立った!」と思ったら、ぜひSNSでシェアをお願いします。
  • URLをコピーしました!

コメント

コメント一覧 (2件)

  • こちらの手順で無事ファイアーウォールの修復完了できました!
    Microsoft Storeでのアプリの更新も問題なさそうです。
    ここ数日なかなかPCを触れず、報告が遅れてしまってすみませんでした。
    今回もわかりやすく解説してくださり本当に感謝です。
    ありがとうございました!

    • de様、

      ご報告ありがとうございます。 ファイアウォールと Microsoft Store の両方が無事に復活したとのこと、本当によかったです。

      原因がレジストリの肥大化(不具合)だったため、通常の修復では直らなかったのですね。 高度な手順でしたが、無事に完了されて何よりです。
      報告の遅れなど全く気になさらないでください。 PC が正常な状態に戻り、快適に使えるようになったことが何よりの朗報です。

      また何かあれば、いつでもお気軽にコメントください。

コメントする

CAPTCHA


目次