Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

現在の多くのWindowsアプリケーションが正常に動作するには、.NET Frameworkが不可欠です。Windows Server 2012 R2のサーバーマネージャーにある「役割と機能の追加ウィザード」では、.NET Framework 3.5と4.5の2つのバージョンを同時にインストールできます。.NET Framework 4.5のインストールは非常に簡単で、ほとんど問題が発生しませんが、.NET Framework 3.5についてはそうとも言い切れません。

Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

インストール時によく発生するエラー

標準設定のままWindows Server 2012 R2に.NET Framework 3.5をインストールしようとすると、次のようなエラーメッセージが表示されます。

「1つ以上の役割、役割サービス、または機能のインストールに失敗しました。ソースファイルが見つかりませんでした…」
Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

エラーの原因:「Features on Demand」による仕様変更

この問題の原因は、.NET Framework 3.5のバイナリファイルが、OSインストール時にシステムディスクへ保存されるローカルキャッシュに含まれていない点にあります。これは、Windows Server 2012で採用された「Features on Demand(オンデマンド機能)」という概念に基づくもので、OSが占有するディスク容量を削減するために実装されています。

PowerShellで以下のコマンドを実行すれば、.NET Framework 3.5がローカルリポジトリに存在するかどうかを確認できます。

Get-WindowsFeature *Framework*
Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

実行結果を見ると、必要なコンポーネントが削除されていることがわかります(Install State:Removed)。

代替ソースパスを指定してインストールする

デフォルト設定では、サーバーマネージャー経由で.NET Framework 3.5をインストールする際、システムはインターネット上のWindows Updateサイトから必要なファイルを取得しようとします(ローカルのWSUSサーバーからではありません)。そのため、サーバーがインターネットに接続できない環境ではインストールが失敗します。この場合、不足しているコンポーネントを入手できるOSイメージへのパスを手動で指定する必要があります。

手動でインストールするには、「代替ソースパスを指定する(Specify an alternative source path)」をクリックし、Windows Server 2012 R2のインストールメディアを格納したフォルダーへのパスを入力します。

ヒント: インストールディスクは、導入済みのOSと同じバージョン(同一エディション・言語・更新プログラム)であることが重要です。指定したフォルダーに必要なファイルが見つからない場合は、記事後半の解決策を参照してください。

Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

パスとして指定できるのは、ローカルフォルダー(例:D:\source\sxs。D:\はWindows Serverディストリビューションが入ったDVDドライブのドライブレター)でも、ネットワーク上の共有フォルダーでも構いません。

Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

「OK」をクリックすると、システムが.NET Framework 3.5のバイナリファイルを検出し、コンポーネントのインストールを開始します。

Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

DISMコマンドでインストールする方法

同じ操作は、管理者権限のコマンドプロンプトで以下のコマンドを実行することでも行えます。

dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess
  • /Online: 現在稼働中のOS(wimイメージではない)を対象にすることを意味します
  • /enable-feature /featurename:NetFX3 /all: .NET Framework 3.5を全機能込みでインストールすることを意味します
  • /Source: 必要なコンポーネントを含むWindowsディストリビューションのディレクトリへのパスです
  • /LimitAccess: Windows Updateへのアクセスを防止します
Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

PowerShellでインストールする方法

PowerShellで.NET Framework 3.5をインストールする場合は、次のコマンドを使用します。

Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs

ソースパスを恒久的に設定する方法

Windowsディストリビューションへのパスは、システムに恒久的に登録することも可能です。設定方法は以下の2通りです。

  • レジストリパラメータRepairContentServerSource(HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing キー内)を設定する
  • グループポリシー「オプション コンポーネントのインストールおよびコンポーネントの修復のための設定を指定する」を利用する(このポリシーは上記のレジストリ設定を変更します)
Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

注意: グループポリシー「オプション コンポーネントのインストールおよびコンポーネントの修復のための設定を指定する」は、GPOの「コンピューターの構成 → 管理用テンプレート → システム」にあります。ポリシーを有効化し、OSディストリビューションが格納されたディレクトリへのパス(代替ソースファイル パス)を指定してください。サーバーがオンラインでの更新を試みないようにするには、「Windows Updateからペイロードをダウンロードしない」にチェックを入れてください。

インストール結果の確認方法

.NET Framework 3.5が正しくインストールされたかを確認するには、「C:\Windows\Microsoft.NET\Framework64」ディレクトリを開き、「v3.5」フォルダーが作成されていることをチェックします。

Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

上記の方法で解決しない場合の対処法

ここまで紹介したインストール方法でも.NET Framework 3.5.1を導入できない場合は、以下の解決策を試してください。

原因:OSビルド番号の不一致

一部の更新プログラム適用後、システム上のWindows Server 2012 R2のバージョン(ビルド)が、手持ちの配布イメージ内のOSと一致しなくなることがあります。この場合、インストーラーはWindowsカーネルのバージョン比較の段階で、古いバージョンのコンポーネントのインストールを拒否します。典型的には、dism経由でインストールする際に次のエラーが発生します。
0x800f081f:ソースファイルが見つかりませんでした

Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説

解決策:Microsoftサーバーからオンラインでインストールする

  1. 現在のWindows Update設定をregファイルに保存します(キー:HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate)
  2. このキーを削除し、WUサービスを再起動します:net stop wuauserv & net start wuauserv
  3. .NET Framework 3.5のオンラインインストールを実行します:DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
  4. インストール完了後、regファイルをインポートしてWindows Update設定を復元し、WindowsUpdateサービスを再度再起動します

ヒント:winsxsフォルダーの再利用

今後のために、このサーバーの「C:\Windows\winsxs」フォルダーを利用して、同じOSバージョンの他のサーバーに.NET Framework 3.5をインストールできます。「C:\Windows\winsxs」フォルダーを対象サーバーの「C:\tmp\winsxs」ディレクトリにコピーし、次のコマンドでコンポーネントをインストールします。
dism /online /enable-feature /featurename:NetFX3 /all /Source:C:\tmp\winsxs /LimitAccess

その他の注意点

サーバーに言語パックをインストールしている場合は、.NET Framework 3.5.1を導入する前に、lpksetupコマンドで言語パックをアンインストールしておく必要があります。

さらに、インストール済み更新プログラムの一覧に、.NET 3.5 Framework向けの修正プログラムが含まれていないかも確認してください(NetFX3コンポーネントが未導入の場合、本来は存在しないはずです)。該当する更新プログラムがあればアンインストールし、再起動後に.NET Framework 3.5のインストールを改めて試みてください。

Windows Server 2012 R2に.NET Framework 3.5をインストールする方法|エラー0x800f081fの対処法も解説
  1. Windows ServerにVMware vCenter Server 6.7をインストールする完全ガイド

    本記事では、Windows環境にVMware vCenter Server 6.7をインストールする手順を、ステップバイステップで詳しく解説します。インストール作業を始める前に、必要なシステム要件やデプロイオプション、そして導入を成功させるために押さえておくべきポイントを理解しておくことが重要です。 vSphereインフラにおける中核コンポーネント VMware vSphereインフラストラクチャの中核を担うのは、「VMware vSphere ESXi」と「VMware vSphere vCenter Server」の2つのコンポーネントです。ESXiは仮想化レイヤーを提供し、物理サーバ

  2. 【解決済み】Windows Server 2016で.NET Framework 3.5インストールエラー「0xc004000d」を修正する方法

    Windows Server 2016で.NET Framework 3.5(.NET Framework 2.0および3.0を含む)をインストールする際に、エラーコード「0xc004000d」が表示されることがあります。このエラーは、Windowsが必要なインストールファイルを見つけられない、またはダウンロードできない場合に発生します。この記事では、Windows Server 2016における.NET Framework 3.5のインストールエラー「0xc004000d」を解決するための手順と、利用可能なすべての方法を詳しくご紹介します。 「指定されたサーバーで機能の追加または削除の要求に