Windows 11でSecurityHealthSSO.dllのBad Imageエラー(0xC000012F)が出るときの原因と完全な対処法

Windows 11 を起動するたびに「SecurityHealthSystray.exe – Bad Image」エラーが表示され、SFC や DISM を試しても直らないととても不安になります。このページでは、単なる一般論ではなく、実際に多くのケースで解決につながった SecurityHealthSSO.dll の手動置換手順や、その前後で行うべきチェック、再発防止策までを詳しく解説します。

目次

SecurityHealthSSO.dll の Bad Image エラーとは

Windows 11 を起動した直後、タスクトレイ付近に次のようなダイアログが出ることがあります。

SecurityHealthSystray.exe – Bad Image
C:\Windows\System32\SecurityHealth\10.0.27840.1000-0\SecurityHealthSSO.dll
は Windows 用に設計されていないか、壊れています。(状態 0xC000012F)

メッセージのポイントは以下のとおりです。

  • SecurityHealthSystray.exe:タスクトレイに表示される「Windows セキュリティ」(旧 Windows Defender)アイコンを担当するプロセス
  • SecurityHealthSSO.dll:Windows セキュリティ UI などで使われる DLL(動的リンクライブラリ)
  • 状態 0xC000012F:DLL が壊れている、あるいはイメージ形式が正しくないと判断されたときに出るエラー

このエラーが出ていても、場合によってはウイルス対策自体は裏側で動いていることもありますが、Windows セキュリティ アプリが正常に開けない、通知がうまく表示されないなど、セキュリティ面で不安の残る状態です。できるだけ早めに対処しておきましょう。

項目内容
主な症状起動のたびに「Bad Image」ダイアログが表示される
関係するファイルSecurityHealthSystray.exe / SecurityHealthSSO.dll
影響Windows セキュリティ UI や通知が正常に動作しない可能性
放置リスク真のマルウェア感染やディスク障害を見落とす可能性、ほかの更新エラーの温床

このエラーが発生する主な原因

SecurityHealthSSO.dll の Bad Image エラーは、次のような要因が重なって発生することが多いです。

  • DLL ファイル自体の破損
    停電・強制終了・ストレージエラーなどが原因で SecurityHealthSSO.dll が部分的に書き換わり、内容が不正になっている。
  • Windows Defender プラットフォーム更新の失敗
    Windows Update 中に通信が途切れた、再起動が中断されたなどで DLL のバージョンが中途半端な状態になっている。
  • サードパーティ製セキュリティソフトやレジストリクリーナーの影響
    不要ファイル削除・最適化の一環として、必要な DLL が誤って削除・隔離されてしまった。
  • Windows 10 から 11 へのアップグレード時のトラブル
    アップグレード途中でエラーが発生し、一部のシステムファイルだけが古いバージョンのまま残ってしまった。
  • ディスクやメモリなどハードウェアの問題
    SSD/HDD のセクタ不良やメモリエラーがあり、読み込んだ DLL の内容が不正になってしまう。

根本原因がどれであっても、表面的には「SecurityHealthSSO.dll のイメージがおかしい」という同じエラーとして現れるため、順番に切り分けと修復を行っていく必要があります。

対処の全体像

いきなりクリーンインストールをする必要はありません。多くのケースでは、次のような流れで進めれば途中で解決します。

ステップ内容目的
ステップ1SFC・DISM などの自動修復システムファイル全体の整合性チェックと自動修復
ステップ2SecurityHealthSSO.dll を手動で正常なファイルへ置き換え問題の DLL をピンポイントで修復
ステップ3Windows Update・他社製セキュリティソフト・ストレージの追加チェック競合・更新不具合・ハードウェア異常の切り分け
ステップ4インプレース アップグレードやクリーンインストールどうしても直らない場合の最終的なシステム再構築

以下、それぞれのステップを具体的に解説していきます。

基本の自動修復:SFC /scannow と DISM

まずは Windows 標準の修復コマンドで、システムファイル全体の整合性を確認します。すでに実行済みでも、順番やオプションを見直すことで改善するケースがあります。

管理者権限でコマンドを実行する準備

  1. スタートボタンを右クリックして、「ターミナル(管理者)」 または 「Windows PowerShell(管理者)」 をクリックします。
  2. ユーザーアカウント制御の画面が出たら 「はい」 を選択します。

以降のコマンドは、この「管理者権限のターミナル」上で実行してください。

SFC /scannow を実行する

システムファイルチェッカー(SFC)は、保護されたシステムファイルをスキャンして不正なものを正しいコピーで置き換えます。

sfc /scannow
  • 処理には数十分かかることがあります。
  • 途中で強制的に閉じたり、PC の電源を切ったりしないでください。

完了後のメッセージを確認し、必要に応じてもう一度実行します。特に最初に「破損を検出し修復しました」と出た場合、2回目の SFC を実行すると残りの不整合がさらに修正されることがあります。

DISM /RestoreHealth を実行する

次に、Windows イメージ自体を修復する DISM を実行します。Windows Update のファイルを参照するので、できればインターネットに接続した状態で行うのが理想です。

DISM /Online /Cleanup-Image /RestoreHealth

こちらも時間がかかることがあります。処理が 100% になるまで待ち、エラーが出ていないことを確認します。

DISM 完了後に、あらためて SFC /scannow をもう一度実行するのがおすすめです。DISM で整えたイメージを使って、SFC が不足分を補修してくれる形になります。

コマンド役割
sfc /scannowシステムファイル(DLL や EXE)の破損を検出し、キャッシュから自動修復
DISM /Online /Cleanup-Image /RestoreHealthWindows イメージ(コンポーネントストア)の破損を修復し、SFC の修復元となるデータを整える

ここまでで問題の SecurityHealthSSO.dll が正常に修復されることもあります。再起動して Bad Image のダイアログが出なくなっているか確認してください。それでも症状が続く場合は、次のステップに進みます。

SecurityHealthSSO.dll を手動で置き換える

自動修復で直らない場合、問題の DLL ファイルを「正常なコピー」で上書きすると改善するケースが非常に多く報告されています。この手順は少し上級者向けですが、流れを押さえれば難しくありません。

正常な SecurityHealthSSO.dll を用意する

まずは、壊れていない SecurityHealthSSO.dll を準備します。入手先としては次のような候補があります。

  • 同じバージョンの Windows 11 が正常に動いている別 PC
    最も安全な方法です。問題のない PC で以下のフォルダーを開きます。
    C:\Windows\System32\SecurityHealth
    その中に 10.0.27840.1000-0 のようなバージョン名のフォルダーが複数存在することがあります。該当フォルダー内の SecurityHealthSSO.dll を USB メモリなどにコピーし、問題の PC に持ってきます。
  • バックアップやシステムイメージから取り出す
    以前に作成したバックアップ(システムイメージや VSS スナップショットなど)があれば、その中から同じパスの DLL を取り出します。

注意:インターネット上の「DLL ダウンロードサイト」などから直接 DLL を入手するのは推奨されません。出所不明の DLL をシステムフォルダーに置くことは、セキュリティリスクや別の不具合の原因になります。

入手した DLL は、作業しやすいように問題の PC の C:\Temp などにコピーしておきます(フォルダーがなければ作成します)。

対象 DLL のバージョンを確認する

置き換える DLL のバージョンは、できる限り現在の Windows と同じビルドのものを使用します。バージョンが合わない DLL を入れると、別のエラーの原因になることがあります。

  • ファイルのプロパティから確認
    エクスプローラーで SecurityHealthSSO.dll を右クリックし、「プロパティ」→「詳細」タブを開くと、製品バージョンやファイルバージョンを確認できます。
  • フォルダー名で確認
    C:\Windows\System32\SecurityHealth 配下のフォルダー名(例:10.0.27840.1000-0)は、そのフォルダー内の DLL のバージョンを意味しています。正常な DLL も、できるだけ同じフォルダー名のものを用意すると安心です。

所有権を取得して DLL を上書きする

次に、現在壊れている SecurityHealthSSO.dll を上書きできるよう、所有権とアクセス権限を変更します。

  1. 管理者権限のターミナル(コマンドプロンプト)を開きます。
  2. 次のコマンドで対象フォルダーに移動します(バージョン部分は自分の環境に合わせてください)。
cd /d "C:\Windows\System32\SecurityHealth\10.0.27840.1000-0"

続いて、次のコマンドを順番に実行します。

takeown /f SecurityHealthSSO.dll /a
icacls SecurityHealthSSO.dll /grant administrators:F
copy /y C:\Temp\SecurityHealthSSO.dll
コマンド意味
takeown /f SecurityHealthSSO.dll /aファイルの所有者を Administrators グループに変更し、管理者が操作できるようにする
icacls SecurityHealthSSO.dll /grant administrators:FAdministrators グループに対して、そのファイルへのフルコントロール権限を付与する
copy /y C:\Temp\SecurityHealthSSO.dllC:\Temp に用意した正常な DLL で上書きコピーする(/y は確認なしの上書き)

コマンド実行後、「1 個のファイルがコピーされました」などのメッセージが出ていれば上書き成功です。

重要:必ず「再起動」で反映させる

DLL を置き換えたら、必ず PC を「再起動」します。

  • スタートボタン → 電源アイコン → 「再起動」 を選択してください。
  • 「シャットダウン → 電源ボタンで起動」では、高速スタートアップによって古い情報が残ることがあります。

高速スタートアップが有効な環境では、シャットダウンしても内部的にはハイバネーションに近い状態になっており、新しい DLL に完全に切り替わらないことがあります。そのため、必ず再起動を選ぶことが重要です。

再起動後、起動時に Bad Image のエラーが表示されなくなったか確認してください。これで解消したという報告が非常に多く、実際に質問者のケースでもこの方法で問題が解決しています。

追加チェック:Update・他社製セキュリティソフト・ストレージ

DLL の置き換えで一旦直ったとしても、根本原因を放置していると再発する可能性があります。ここでは、発生要因になりやすいポイントを追加で確認します。

直前の Windows Update を確認・アンインストールする

特定の更新プログラムを適用した直後からエラーが出るようになった場合、その更新が原因の可能性もあります。

  1. 設定 → Windows Update → 更新の履歴 を開きます。
  2. 「更新プログラムのアンインストール」もしくは「インストールされた更新プログラム」などの項目をクリックします。
  3. エラーが出始めた日付と近い更新を確認し、問題がありそうなものを一時的にアンインストールします。

アンインストール後は PC を再起動し、エラーが解消するか確認してください。そのうえで、しばらく様子を見てから、改めて最新の更新プログラムを適用するのがおすすめです。

他社製セキュリティソフトを一時的に無効化・アンインストール

サードパーティ製のウイルス対策ソフトやセキュリティスイートは、Windows Defender と深くかかわるため、まれに DLL の競合や不整合を引き起こすことがあります。

  • 一度リアルタイム保護を停止して PC を再起動し、症状が変化するか確認する。
  • 可能であれば一時的にアンインストールし、Windows Defender のみの状態で起動してみる。
  • その間、怪しいファイルを開かない・不審なサイトにアクセスしないなど、基本的な自己防衛を徹底する。

他社製ソフトを外した状態でエラーが出なくなる場合は、そのソフトのバージョンアップや設定見直しを検討しましょう。

ストレージとメモリの簡易チェック

ファイル破損の裏側に、ストレージやメモリのハードウェア異常が潜んでいることもあります。簡単なチェックとして次のような方法があります。

  • ディスクチェック
    管理者権限のターミナルで、システムドライブに対して次のコマンドを実行します。
    chkdsk C: /scan 重大なエラーが報告された場合は、スケジュールされた再起動時のフルスキャンが案内されます。
  • Windows メモリ診断
    スタートメニューで「メモリ診断」と検索し、Windows メモリ診断を実行します。「今すぐ再起動して問題の有無を確認する」を選ぶと再起動時にチェックが行われます。

これらで明らかな異常が見つかった場合は、DLL 修復だけでなく、ストレージやメモリそのものの交換・点検も検討してください。

どうしても直らない場合の最終手段

ここまでの手順(SFC/DISM、DLL 手動置換、追加チェック)を行っても改善しない場合は、システム全体の再構築が必要になるケースもあります。その際の代表的な方法が、インプレース アップグレードとクリーンインストールです。

インプレース アップグレード(修復インストール)

インプレース アップグレードは、現在の Windows 11 上からセットアップを走らせて「上書きインストール」する方法です。個人ファイルや多くのアプリ・設定を維持したまま、システムファイルを新しく入れ直すことができます。

大まかな流れは次のとおりです。

  1. 必要なデータのバックアップ(ドキュメント、デスクトップ、重要なアプリの設定など)を取る。
  2. Windows 11 のインストールメディア(ISO/USB)を用意する。
  3. Windows 上で setup.exe を実行する。
  4. 画面の指示に従い、「個人用ファイルとアプリを引き継ぐ」オプションを選択する。
  5. インストールが完了するまで待ち、再起動後にエラーの有無を確認する。

この方法であれば、クリーンインストールほどの負担なくシステムをリフレッシュできるため、最後の一歩に進む前の強力な選択肢になります。

クリーンインストール

クリーンインストールは、C ドライブをいったん初期化し、まっさらな状態から Windows 11 を入れ直す方法です。あらゆるソフト・設定・レジストリがリセットされるため、ソフトウェア側の問題はほぼ確実に解消できますが、そのぶん負荷も大きくなります。

  • すべてのデータを別ドライブやクラウドにバックアップしておく必要があります。
  • 再インストールが必要なアプリ(Office、各種業務アプリ、ドライバーなど)の準備も忘れずに行ってください。
  • ライセンスキーやログイン情報も事前に控えておくとスムーズです。

SecurityHealthSSO.dll の Bad Image エラー単体でここまで行くケースは多くはありませんが、他にもシステムエラーが頻発している場合は、思い切ってクリーンインストールを選ぶのも一つの手です。

再発防止と日常的なメンテナンス

一度トラブルを経験すると、「また同じエラーが出るのでは?」という不安が残りがちです。ここでは、SecurityHealthSSO.dll を含むシステムファイルのトラブルを減らすためのポイントを整理します。

Windows Update と Defender プラットフォームを最新に保つ

  • 定期的に 設定 → Windows Update を開き、「更新プログラムのチェック」を実行する。
  • 「更新を一時停止」機能を長期間使いっぱなしにしない。
  • 重要な更新が公開されている場合は、なるべく早めに適用する。

Windows Defender(現 Microsoft Defender)は Windows セキュリティの中核であり、そのプラットフォーム更新が失敗すると今回のような DLL エラーのきっかけになります。こまめに更新しておくことで、修正パッチや不具合の改善も取り込むことができます。

レジストリクリーナーや不要ファイル削除ツールの使いすぎに注意

「PC を軽くする」「不要な DLL を削除して高速化」などをうたうツールの中には、システムにとって重要なファイルまで削除してしまうものもあります。特に、Windows のバージョンアップが頻繁になっている最近の環境では、ツール側が新しいバージョンに追従できておらず、誤検出を起こすことがあります。

  • レジストリや DLL を自動で削除する機能は、できるだけオフにしておく。
  • どうしても使う場合は、削除前のバックアップ機能があるツールを選ぶ。
  • 削除候補として表示された項目を、内容を理解せず「全部削除」はしない。

特にセキュリティ関連フォルダー(SecurityHealth など)を掃除対象に含めてしまうと、今回のようなエラーの直接的な原因になることがあります。

システムの復元ポイントを活用する

大きな更新やドライバーのインストール前に、手動で復元ポイントを作成しておくと、万が一のときに簡単に巻き戻すことができます。

  1. スタートメニューで「復元ポイントの作成」と検索し、システムプロパティを開く。
  2. 対象ドライブ(通常は C:)を選んで「構成」で保護を有効にする。
  3. 「作成」ボタンから任意の名前で復元ポイントを作成する。

Windows Update や大きなソフトウェア更新の前に、ひと手間かけて復元ポイントを作っておくだけで、今回のようなトラブルが起きたときの安心感が大きく変わります。

定期的なフルスキャンでマルウェア混入を防ぐ

SecurityHealthSSO.dll 自体がマルウェアに置き換えられている可能性は高くありませんが、システムファイルが破損するような環境では、マルウェアが活動していることも考えられます。

  • 月に一度程度は、Windows セキュリティからフルスキャンやオフラインスキャンを実行する。
  • 怪しいファイルやメール添付を不用意に開かない。
  • ブラウザや各種アプリも常に最新バージョンを保つ。

マルウェアによる DLL 差し替えなどが行われている場合、自力での修復だけでは対処しきれないことも多いため、まずは感染そのものを予防することが重要です。

上級者向け:イベントログで詳細を確認する

より深く原因を追いたい場合は、イベントビューアーで関連するログを確認する方法もあります。

  • スタートメニューで「イベント ビューアー」と検索して起動する。
  • 左ペインから「Windows ログ」→「アプリケーション」を開く。
  • エラー発生時刻付近で、Application Error や .NET Runtime、SecurityHealth 関連のイベントを探す。

イベントログには、どのモジュールが読み込めなかったか、どのプロセスからエラーが出たかなど、ダイアログより細かい情報が記録されていることがあります。DLL の手動置換やアップデートの前後でログ内容を比較すると、改善があったかどうかを客観的に確認できます。

まとめ:まずは DLL 手動置換と再起動から

SecurityHealthSSO.dll の Bad Image エラー(状態 0xC000012F)は、見慣れない英語メッセージも相まって不安になりますが、手順を踏んで対処すれば多くの場合は解決できます。

  • まずは SFC /scannow と DISM /RestoreHealth でシステムファイルとイメージの自動修復を行う。
  • それでも直らない場合は、同じビルドの Windows から入手した 正常な SecurityHealthSSO.dll を手動で上書きする。
  • 上書き後は、必ず 「再起動」で新しい DLL を確実に読み込ませる(シャットダウン→起動ではなく)。
  • 直前の Windows Update や他社製セキュリティソフト、ストレージの状態もあわせて確認し、再発要因をつぶしておく。
  • どうしても解消しないときは、インプレース アップグレードや最終的なクリーンインストールも選択肢に入れる。

特に、手動での DLL 置換+再起動は、多くの実例で効果が確認されている現実的な解決策です。同じエラーで悩んでいる場合は、バックアップをしっかり取ったうえで、この記事の手順を順番に試してみてください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次