Windows 10で.NET Framework 3.5エラーコード0x800f0954を解決する方法

📅
🕑 1 分で読む

.NET Framework 3.5やその他のオプション機能を有効にしようとした際に、あの厄介な0x800f0954エラーが発生するのは珍しいことではありません。少し奇妙に感じるかもしれませんが、Windowsは時々、特にWindows Updateサーバーにアクセスできない場合や、グループポリシーによってプロセスがブロックされている場合に、少し扱いに​​くくなることがあります。通常、これはWindowsがクラウドやローカルソースからファイルを取得できないことの兆候です。このエラーの解決は必ずしも簡単ではありませんが、いくつかの実証済みの方法を使えば、問題が解決することがよくあります。

Windows 10(または11)でエラー0x800f0954を修正する方法

PowerShell を使用して. NET Framework 3.5 を手動でインストールする

これは、Windowsがサーバーからファイルを取得できない場合に役立ちます。基本的には、インストールメディア(ISOやDVDなど)をマウントし、PowerShellにそのソースを直接使用するように指示します。なぜうまくいくのかは分かりませんが、一部のマシンでは、この回避策で問題を解決できます。特にWindows Updateが動作不良を起こしている場合やポリシーでブロックされている場合に有効です。

  • メディア作成ツールなどのツールを使用して最新のWindows ISOファイルをダウンロードします。ダウンロードしたら、ダブルクリックしてマウントします。ドライブ文字(D:\など)を忘れずにメモしておいてください。
  • PowerShellを管理者として開きます。PowerShellを検索し、右クリックして「管理者として実行」を選択することで実行できます。
  • 次のコマンドを入力します (D:\ をマウントした ISO ドライブ文字に置き換えてください)。

Add-WindowsCapability -Online -Name "NetFx3~~~~" -Source D:\sources\sxs -LimitAccess

これにより、Windows はオンラインで取得するのではなく、ローカル ソースを使用して. NET 3.5 をインストールするようになります。

  • 完了したら、機能が正しくインストールされたかどうかを確認します。

Get-WindowsCapability -Online -Name "NetFx3~~~~"

「インストール済み」と表示される場合は、PC を再起動して、再試行するとエラーが解消されるかどうかを確認します。

この方法は最初は失敗するものの、再起動後に魔法のようにうまくいくという報告もあります。Windowsはそういう風に奇妙なことがあるようです。

オプション機能のために Windows Update サーバー (WSUS) をバイパスする

システムがWSUSサーバーに接続されている場合、または企業のポリシーによってWindowsが直接機能をダウンロードできない場合、これがエラーの原因となることがよくあります。WindowsがWSUS経由で更新を取得するのをやめ、Microsoftサーバーに直接アクセスするように設定する方法をご紹介します。

  • Windows + Sを押して「 Regedit 」と入力し、レジストリ エディターを開きます。
  • UAC によってプロンプトが表示されたら、[はい]をクリックします。
  • 次の場所に移動します:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU

  • UseWUServerをダブルクリックし、値のデータを0に設定します。存在しない場合は、この文字列値を作成する必要があるかもしれません。
  • レジストリ エディターを閉じて、PC を再起動します。

これは基本的に、Windows に機能更新のための WSUS サーバーを無視し、直接 MS にアクセスするように指示します。

また、Windows Update 設定を完全にリセットするには、新しいレジストリ キーを作成する必要がある場合もあります。

  • Windowsキーを右クリックし、「新規」 » 「キー」を選択して、「WindowsUpdate」という名前を付けます。
  • WindowsUpdateを右クリックし、「新規」 » 「キー」を選択して、AU という名前を付けます。
  • AU内で、右側のペインを右クリックし、[新規] > [文字列値]を選択して、 UserWUServerという名前を付けます。

その後、システムを再起動して、機能を再度インストールしてみてください。これにより、頑固なアップデートブロックが解消される場合もあります。

グループポリシーを使用して、Windows Update から機能を強制的にダウンロードする

Windows ProまたはEnterpriseをご利用の場合、グループポリシーエディターを使用すると、機能のインストールをブロックする可能性のある設定を上書きできます。ただし、Homeエディションでは機能しませんのでご注意ください。

  • Windows + Rを押して、gpedit.mscと入力し、Enter を押します。
  • 次の場所に移動します:

Computer Configuration » Administrative Templates » System

  • オプション コンポーネントのインストールとコンポーネントの修復の設定を指定するをダブルクリックします。
  • 有効に設定します。
  • [Windows Server Update Services (USUS) ではなく、Windows Update から修復コンテンツとオプション機能を直接ダウンロードする]チェックボックスをオンにします。
  • 「適用」をクリックして再起動します。

これにより、Windows は常にオプション機能を Microsoft のサーバーから直接取得するように調整され、破損またはブロックされている可能性のある更新パスをスキップします。場合によっては、これだけでエラーを完全に回避できることもあります。

Windowsの機能を使用して. NET Framework 3.5のインストールを強制する

それでもうまくいかない場合は、GUIを使ってWindowsに. NET Framework 3.5を手動でインストールするように指示すると、うまくいくことがあります。特にコマンドラインでのインストールがうまくいかない場合はなおさらです。これは一種の強引なやり方ですが、試してみる価値はあります。特に設定に機能を追加するオプションがある場合はなおさらです。

  • Windows キーを押して、「Windows の機能」と入力し、「Windows の機能の有効化または無効化」パネルを開きます。
  • .NET Framework 3.5 (.NET 2.0 および 3.0 を含む)を見つけて、両方のボックスをチェックします。
  • [OK]をクリックし、Windows が機能をインストールするまで待ってから再起動します。

これが機能すれば、特に他の方法がうまく動作しない場合でも、かなり信頼できるフォールバックになります。

追加のヒントとよくある落とし穴

これらの手順をすべて試してもエラーが解決しない場合は、システムファイルの一部が破損しているか、Windows Updateコンポーネントが故障している可能性があります。Windows Updateの修復トラブルシューティングツールを実行するか、Windows Updateコンポーネントをリセットすると問題が解決する場合があります。また、PCに問題を引き起こす可能性のある保留中の更新プログラムがないことを確認してください。

まとめ

  • Windows ISO をマウントし、適切なソースで PowerShell を使用して、.NET を手動でインストールします。
  • レジストリ内の WSUS 設定を上書きして、Microsoft に直接接続します。
  • グループ ポリシーを調整して、Windows Update から機能を直接ダウンロードできるようにします。
  • Windows 機能 GUI を使用して機能を手動で有効にします。
  • エラーが繰り返し発生する場合は、システム ファイルの問題または更新の問題を確認してください。

まとめ

正直なところ、このプロセス全体は面倒な場合があります。特に、厳重にロックダウンされていたり、古いシステムではなおさらです。しかし、これらの方法は、サーバーの問題を回避したり、Windowsに適切なファイルを強制的に取得させたりすることで、エラーを修正する傾向があります。ただし、数回の試行や再起動が必要になる場合もありますので、ご安心ください。この方法が、ボトルネックとなっているイライラするエラーから抜け出すのに役立つことを願っています。