日程Fit|「いつ空いてますか?」の往復はもう不要。候補日を選んでURLを送るだけ|登録不要|今すぐ無料で使う →

Windowsで.NET Framework 3.5追加が0x80072EE2で失敗する原因とDISMでの解決手順

Windowsで「Windows の機能の有効化または無効化」から.NET Framework 3.5(NetFx3)を追加しようとすると、最後にエラー 0x80072EE2 で止まることがあります。Defenderを停止しても、ネット接続があっても改善しない場合は、取得元を切り替えて“確実にソースを渡す”のが近道です。

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

.NET Framework 3.5(NetFx3)とは何か:なぜ今でも必要なのか

.NET Framework 3.5 は、古い業務アプリや社内ツール、古いドライバー設定ユーティリティなどで今でも要求されることがある「Windows 標準のランタイム」です。.NET Framework 4.x(4.8/4.8.1 など)とは別系統で、Windows 10/11 でも “標準搭載=すぐ使える” ではなく、必要になった時点で追加(有効化)するオプション機能として扱われます。

この「オプション機能」であることが、今回の 0x80072EE2 の根っこです。GUI で有効化する操作は一見シンプルですが、内部ではNetFx3 のソース(機能ファイル)をどこから取得するかという問題があり、ネットワーク環境や更新コンポーネントの不整合で失敗しやすくなります。

症状:Windows の機能から .NET Framework 3.5 を入れようとして 0x80072EE2 で失敗する

よくある状況は次のとおりです。

  • 「Windows の機能の有効化または無効化」から .NET Framework 3.5(.NET 2.0 と 3.0 を含む) をチェックして適用
  • 進捗が 100% 近くまで進む/長時間待たされる
  • 最後に エラーコード 0x80072EE2 で失敗し、.NET 3.5 が有効化されない
  • Microsoft Defender(AV)を一時停止しても改善しない
  • インターネット接続がある環境でも改善しない(社内プロキシ、VPN、WSUS 配下など)
  • オフラインインストーラーを試しても同様に失敗する

エラー 0x80072EE2 の意味:タイムアウトで “取りに行けていない” サイン

0x80072EE2 は、ざっくり言うと通信のタイムアウトです。Windows Update(またはその代理となる WSUS、プロキシ)経由でコンテンツを取得しようとした結果、時間内に必要なデータを取れず失敗しているパターンが多く見られます。

観点内容現場で多い原因例
エラーの性質通信・取得のタイムアウト回線は生きていても、プロキシや検査装置で遅延/遮断されている
発生箇所NetFx3 のソース取得(Windows Update/WSUS 等)WSUS が「オプション機能のコンテンツ」を配信していない/到達できない
再現条件GUI で追加、または “オンライン取得が必要” な状況VPN 常時接続、セキュリティゲートウェイ、社内 DNS などが絡む

結論:NetFx3 のソースを “取りに行く” のではなく “渡す” と通りやすい

Defender を止めても改善しない、ネット接続があっても改善しない…というケースでは、セキュリティソフトというより取得元(Windows Update/WSUS/プロキシ)側の問題であることが多いです。そこで効果的なのが、Windows インストールメディア(ISO/USB/DVD)内の X:\sources\sxs をソースとして DISM に明示する方法です。

この方法なら、Windows Update を見に行かずにローカルのファイルから有効化できるため、0x80072EE2(タイムアウト)系の失敗を避けられます。

対応の優先順位:おすすめの進め方(迷ったらこの順)

優先やること狙い所要感
1Windows Update のトラブルシューティング更新コンポーネントの不整合を自動修復短い
2ISO/メディアをソースに DISM で NetFx3 を有効化オンライン取得を回避して確実に入れる(本命)
3Windows Update キャッシュ(SoftwareDistribution)を整理ダウンロード破損やキャッシュ詰まりの解消
4企業ネットワーク(WSUS/プロキシ/ポリシー)を点検環境要因を潰して再発防止状況次第

手順:Windows Update のトラブルシューティングを実行する

まずは Windows Update の整合性が崩れていないかを自動修復で確認します。GUI で完結するため、影響が少なく先に試す価値があります。

  1. 設定を開く
  2. (Windows 10 の場合)「更新とセキュリティ」→「トラブルシューティング」→「追加のトラブルシューティング ツール」→「Windows Update」
  3. (Windows 11 の場合)「システム」→「トラブルシューティング」→「その他のトラブルシューティング ツール」→「Windows Update」
  4. 画面の案内に従って実行し、修復後に再起動

ここで直れば最短です。ただし 0x80072EE2 は「取りに行けない」系が多いため、改善しない場合は次の DISM 手順へ進むのが現実的です。

本命:インストールメディアをソースにして DISM で .NET Framework 3.5 を有効化する

この方法のポイントは次の 2 つです。

  • ISO/USB/DVD の X:\sources\sxs にある NetFx3 ソースを使う
  • /LimitAccess を付けて Windows Update を見に行かせない

準備:ISO(または USB/DVD)を用意し、ドライブとしてマウントする

Microsoft 公式の Windows インストールメディア(ISO)を用意し、エクスプローラーで右クリックして「マウント」します。マウントできない場合は、USB/DVD でも構いません。

  • マウント後は「D:」や「E:」などのドライブ文字が割り当てられます(環境により異なります)。
  • エクスプローラーで X:\sources\sxs が存在することを確認します(X は実際のドライブ文字)。

実行:管理者のコマンドプロンプトで DISM を実行

管理者権限のコマンドプロンプト(または Windows Terminal)を開き、次のコマンドを実行します。

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:X:\sources\sxs

実行前に押さえるべきポイントを表にまとめます。

項目意味重要ポイント
/Online今起動している Windows を対象にするオフラインイメージではなく “現PCに入れる” 場合に使用
/Enable-Featureオプション機能を有効化するGUI の「Windows の機能」と同じ目的
/FeatureName:NetFx3.NET Framework 3.5 の機能名NetFx3 が正しい指定
/All依存関係もまとめて有効化不足が原因で失敗するのを防ぐ
/LimitAccessWindows Update を参照しない0x80072EE2 対策の核心。必ず付ける
/Source:X:\sources\sxsローカルのソースパスドライブ文字 X を実環境に合わせる

成功の確認:有効化されているかをチェック

DISM が正常終了したら、次のどれかで状態を確認できます。

  • 「Windows の機能の有効化または無効化」で .NET Framework 3.5 にチェックが入っているか確認
  • コマンドで確認(DISM)
DISM /Online /Get-Features /Format:Table | findstr /i NetFx3

State が Enabled になっていれば有効化できています。アプリ側が再起動を要求することもあるので、必要に応じて Windows も再起動してください。

失敗しがちなポイント:ここでつまずくと “別のエラー” に変わる

0x80072EE2 ではなく、別のエラーに変わるケースもあります。これは “前進” で、通信タイムアウトからソース不一致やパス違いに論点が移ったサインです。

よく出るエラー意味・原因の方向性まず確認すること
0x800f081fソースが見つからない/不一致X:\sources\sxs が存在するか、Windows の世代・言語・ビルドが合っているか
0x800f0906ソースのダウンロードに失敗(オンライン)/LimitAccess を付けたか、ソースを指定したか
0x800f0922更新適用に失敗/予約領域不足など空き容量、保護されたシステム領域、更新の状態を確認

特に重要なのが、インストールメディアの “同系統” を使う点です。Windows 10 用 ISO で Windows 11 に当てる、言語が違う、エディションやビルド差が大きい…といった場合は不一致で失敗しやすくなります。可能なら、対象 PC と同じ世代・同じ言語のメディアを使ってください。

チェック:本当に X:\sources\sxs を指定できているか

地味ですが、ドライブ文字の間違いが最も多いです。まずはフォルダが見えているかを確認します。

dir X:\sources\sxs

ファイル一覧が出ればパスは正しい可能性が高いです。出ない場合は、ドライブ文字が違う/ISO をマウントできていない/メディアが別物のいずれかです。

参考:Windows Update のキャッシュを削除してやり直す(同じエラーになりがちだが試す価値はある)

提示されることが多い定番手順が、Windows Update のキャッシュ(SoftwareDistribution)を整理する方法です。今回のような 0x80072EE2(タイムアウト)では根本解決にならないこともありますが、更新コンポーネントが詰まっているケースでは効くことがあります。

管理者のコマンドプロンプトで、次を順に実行します(実行中の更新がある場合は中断されるので、作業前に再起動しておくと安全です)。

net stop wuauserv
net stop bits
net stop cryptsvc

ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old

net start cryptsvc
net start bits
net start wuauserv

その後、再起動してから .NET Framework 3.5 の有効化を再実行します。結果が変わらない場合は、やはりローカルソース指定(DISM)の方が確実です。

企業ネットワーク(WSUS/プロキシ)で詰まりやすい理由と、現場で効く確認ポイント

社内 PC では、Windows Update のアクセスがそのままインターネットに出ていないことが普通です。代表例が次の 3 つです。

  • WSUS(社内更新サーバー):更新は通るが、オプション機能のコンテンツが配信されていない/未同期
  • プロキシ:認証が必要、または SSL 検査で遅延し、タイムアウトになりやすい
  • VPN:トンネル経由の遅延、分岐(スプリットトンネル)設定で更新だけ不安定

このような環境では「ネットはつながっているのに取れない」が起きます。そこで、切り分けに役立つコマンドをまとめます。

確認項目コマンド例見たいポイント
WinHTTP プロキシ設定netsh winhttp show proxy意図しないプロキシが入っていないか
インターネット疎通ping -n 1 www.microsoft.comDNS/経路が異常ではないか(ICMP が遮断されている環境では参考程度)
更新サービスの状態sc query wuauservRUNNING になっているか

とはいえ、ネットワーク要因の調査は時間がかかりがちです。短時間で復旧が必要なら、まずは DISM の /LimitAccess + /Source が最優先です。ネットワークやポリシーの是正は、復旧後に落ち着いて進める方が現実的です。

それでもうまくいかない場合:追加の切り分けとログの見方

DISM のソース指定でも失敗する場合は、次の観点で切り分けると原因に近づけます。

1) 対象 Windows とメディアの整合性を確認する

まずは OS のバージョンを確認します。コマンドで確認するなら以下が手早いです。

winver
systeminfo | findstr /i "OS 名 OS バージョン"

同じ世代・同じ言語の ISO を使っているか、改めて確認してください。特に社内で配布されるカスタムイメージ(不要コンポーネント削減済み)だと、sxs の内容が欠けている場合があります。

2) DISM と CBS のログを確認する

エラーの手掛かりはログに残ります。次のパスをメモ帳で開き、最後の方(新しい時刻)を確認します。

  • C:\Windows\Logs\DISM\DISM.log
  • C:\Windows\Logs\CBS\CBS.log

ログの中で “source” “NetFx3” “0x” などを検索すると、ソースの場所や失敗理由が見つかることがあります。

3) GUI ではなく PowerShell で明示的に指定する(操作ミスを減らす)

PowerShell で同じことを行うと、パラメータが見やすくなります。管理者 PowerShell で次を実行します(X はメディアのドライブ)。

Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 -All -Source "X:\sources\sxs" -LimitAccess

よくある質問

Q. 「オフラインインストーラー」でも失敗するのはなぜ?

一般に “オフラインインストーラー” と呼ばれるものでも、実態としてはWindows のオプション機能(Feature on Demand)に紐づくコンテンツを OS が取りに行く動きが残っている場合があります。確実に回避したいなら、DISM に X:\sources\sxs をソースとして渡すのが安定です。

Q. Defender(AV)を止めても直らないのはなぜ?

0x80072EE2 の多くは通信(Windows Update/WSUS/プロキシ)側のタイムアウトが原因です。AV 側のブロックであれば別のエラーになったり、ログに痕跡が出たりすることが多く、Defender 停止で改善しない場合は “取得元” を疑うのが合理的です。

Q. 会社PCで管理者権限がない場合はどうすればいい?

.NET Framework 3.5 の有効化はシステム機能の追加なので、通常は管理者権限が必要です。IT 管理者に依頼する際は、次の情報を伝えると話が早くなります。

  • エラーコード:0x80072EE2
  • 実施したこと:GUI での有効化、トラブルシューティング、DISM(/LimitAccess + /Source)
  • 使用したメディア:OS と同系統の ISO/USB、X:\sources\sxs の存在確認
  • 社内環境:WSUS/プロキシ/VPN の有無

まとめ:0x80072EE2 は “NetFx3 のソース取得に失敗している” 可能性が高い

Windows で .NET Framework 3.5 の追加が 0x80072EE2 で失敗する場合、原因の本命はNetFx3 のコンポーネントを取得できていない(タイムアウトしている)ことです。まずは Windows Update のトラブルシューティングで整合性を直し、それでもダメならインストールメディアをソースにした DISM(/LimitAccess + /Source)で、Windows Update への依存を断つのが最短ルートです。

同じ症状でも環境要因(WSUS/プロキシ/VPN)で発生しやすさは変わります。復旧後は、再発しないよう更新経路やポリシーも見直しておくと、別の “オプション機能の追加” でも詰まりにくくなります。

この記事を書いた人

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

コメント

コメントする

目次