.NET Framework のインストール時に 0x800f0954 エラーが発生すると、確かに厄介です。これは、Windows がアップデート サーバーに接続できない場合や、システム ファイルの一部に問題がある場合などに、突然発生する問題の一つです。原因としては、Windows が WSUS (Windows Server Update Services) の設定に固執し、ローカル サーバーからアップデートを取得するように指示している場合などが挙げられます。このローカル サーバーは、もはや利用できない可能性があります。また、ログが破損していたり、DISM や Windows Update の設定に何らかの問題が生じている場合もあります。いずれにせよ、幸いなことに、この問題を回避する方法はいくつかあり、正直なところ、そのほとんどは見た目ほど複雑ではありません。手順を注意深く実行すれば、これらの回避策のいずれかで問題が解決するはずです。
.NET Frameworkのインストール時に発生する0x800f0954エラーを修正する方法
Windowsがアップデートサーバーにアクセスできるように、WSUSサーバーをバイパスする
- Windows キー + Rを押して、regeditと入力し、Ctrl + Shift + Enterを押します。管理者として実行してください。Windows は管理者権限を要求してこない場合があるので。
- ユーザーアカウント制御のプロンプトが表示されたら、「はい」をクリックします。
- レジストリ エディターで、次の場所に移動します: HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsUpdate\\AU
- WindowsUpdateキーが表示されない場合は、作成する必要があります。Microsoftを右クリックし、[新規] > [キー] を選択して、 WindowsUpdate という名前を付けます。次に、それを右クリックし、再度[新規] > [キー]を選択して、AU という名前を付けます。
- AUを選択した状態で、右側に移動し、右クリックして、[新規] > [文字列値]を選択します。名前をUserWUServerとします。
- UserWUServerをダブルクリックし、値のデータを0に設定してください。これにより、WindowsはWSUSではなく通常の更新サーバーに接続するようになり、これが問題の根本原因となることがよくあります。
- レジストリエディタを閉じて、PCを再起動してみてください。それで問題が解決するかどうか確認してください。
潜在的な破損を修正するために、CBSログをクリアしてください。
- ファイルエクスプローラーを開き、C:\\Windows\\Logs\\CBSに移動します。
- そこにあるものはすべて削除してください。これらのログファイルは時として肥大化したり破損したりして、システムアップデートを完全に停止させてしまうことがあります。
- 次に、Windows キー + Rを押し、cmdと入力し、 Ctrl + Shift + Enterを押して管理者権限でコマンドプロンプトを開きます。そうです、もう一度言いますが、管理者として実行してください。
- コマンドウィンドウに「」
Dism.exe /online /enable-feature /featurename:NetFX3 /source:C:\と入力してEnterキーを押してください。これにより、.NET Frameworkの機能が手動で有効化され、通常の更新プロセスがスキップされる場合があります。 - 処理が完了したら、PCを再起動して、.NET Frameworkをインストールできるかどうか確認してください。環境によっては、この方法で処理が速くなる場合があります。
PowerShellを使用して. NET Framework 3.5を直接インストールする
- 「ファイル名を指定して実行」ダイアログを開き、「powershell」と入力して、Ctrl + Shift + Enterを押して管理者として起動します。
- プロンプトが表示されたら、PowerShellに管理者権限を付与してください。
- .NET Framework 3.5をインストールするには、次のコマンドを入力してください。
Add-WindowsCapability -Online -Name NetFx3~~~~ –Source D:\sources\sxs
(ソースパスがWindowsインストールメディアの場所、または必要なファイルが保存されている場所と一致していることを確認してください。)
グループポリシーを調整して、更新設定を改善します
- Windows キー + Rを押して、gpedit.mscと入力し、Enter キーを押します。
- はい、管理者権限が必要です。ローカルグループポリシーエディターを開いたら、[コンピューターの構成] > [管理用テンプレート] > [システム]に移動します。
- 「オプションコンポーネントのインストールとコンポーネントの修復に関する設定を指定する」をダブルクリックします。
- 「有効」に設定します。 「Windows Server Update Services (USUS) ではなく、Windows Update から修復コンテンツとオプション機能を直接ダウンロードする」というチェックボックスをオンにします。
- 適用して、閉じて、再起動してください。WSUSの設定で問題が発生している場合など、WindowsはMicrosoftから直接アップデートコンテンツを取得することを好む場合があります。
UseWUServer のレジストリ値を変更します
- WindowsキーとRキーを同時に押し、regeditと入力してEnterキーを押します。
- 次の場所に移動します: HKLM\\Software\\Policies\\Microsoft\\Windows\\WindowsUpdate\\AU\\UseWUServer
- 値を1から0に変更してください。1のままにしておくと、WindowsはWSUSサーバーから更新プログラムを取得しようとしますが、そのサーバーは既に存在しない可能性があります。
- PCを再起動してから、もう一度Windows Updateを試してみてください。
これらの選択肢は、実際に何が問題なのかによって異なります。Windowsの設定の問題の場合もあれば、システムの破損やネットワークの問題の場合もあります。一部のマシンでは、変更後に再起動すると、残存するエラーが解消されるようです。理由は不明ですが、最近のWindowsではよくあることです。
まとめ
- WSUSサーバーをバイパスして、Windowsがアップデートサーバーに直接接続できるようにします。
- CBSログをクリアしてください。これにより、インストールエラーの原因となっている破損が修復される可能性があります。
- PowerShellを使用して、.NET Frameworkをソースファイルから直接インストールします。
- グループポリシーの設定を調整して、Windows Updateの直接ダウンロードを優先するようにします。
- レジストリ設定を変更して、Windowsが古いWSUSサーバーを使用しようとしないようにします。
まとめ
必ずしもすぐに解決するとは限りませんが、システム設定やレジストリにアクセスできれば、これらの方法のほとんどは簡単です。場合によっては、特定の構成を変更したり、システムログをクリアしたりしない限り、エラーが解消されないこともあります。これらの方法のいずれかで問題が解決することを祈りましょう。それでも解決しない場合は、システム修復ツールを試したり、クリーンインストールを実行したりする価値があるかもしれません。Windowsは、単に再起動が必要な場合もあるからです。