インターネット経由であれば、.NET Framework 3.5(以降、NetFx3)を簡単にはインストールできる。しかし、インターネット接続ができない環境下でインストールをチャレンジしても、そもそも、「SxS」ないし「WinSxS」フォルダに対し、ソース設定しても、うまく行かなかった。ちなみに、バージョン1709であれば、インストールできることから、NetFx3のインストーラーが削除された模様。

いくらやっても、Microsoftサポートにあるエラーになった。
これは、適用対象: Windows Server 2019も含まれているので、全てのバージョンが対象のようです。
(参考).NET Framework 3.5 インストール時のエラー: 0x800F0906、0x800F081F、0x800F0907

インストール方法は、次のMicrosoft TechNetに記載があるので参考ください。
(参考)【Management】Windows 8 に .NET Framework 3.5 をインストールする、もう1つの方法 Fondue

■コマンドプロンプトで行う場合
Dism /online /enable-feature /featurename:NetFx3 /All /Source:”D:¥Sources¥sxs” /LimitAccess

■PowerShellで行う場合
Enable-WindowsOptionalFeature -Online -FeatureName NetFx3 –All –Source ”D:¥Sources¥sxs” -LimitAccess

「Source」はインストール(ソース)元を指します。
「LimitAccess」はWindows Update接続は行わないことを指します。
Windows 10 (1803以降?)からは、NetFx3が無いようなので、どうしても見つからない場合には、こちら(70MB)から取得し、適当なフォルダに展開をし、Source指定でインストールをしてみてください。
例えば、C:¥sources¥sxsに展開している場合には、
Dism /online /enable-feature /featurename:NetFx3 /All /Source:”C:¥Sources¥sxs” /LimitAccess
となります。

どうして1803には無いんじゃ?と思ったキッカケは、
DISM /Online /Get-Features /Format:Table | findstr "NetFx"
での検索結果で、「ペイロードの削除によって無効」となっていました。
「無効」であればインストールできるんでしょうが、削除されているので、オンラインインストールが必要なんだろうな、と。
PowerShellで検索するのが面倒なので、コマンドプロンプトで書いていますが、PowerShellで行う場合には、次のコマンドになります。
Get-WindowsOptionalFeature -Online | ? FeatureName -Match "NetFx3"

そして、バージョン1709のイメージをマウントし、sxsフォルダをソース指定したところ、うまく行きました。
この、ソース指定をコマンドで「/source」なり「-source」なりで設定すればいいのですが、ローカルポリシーで行う方法も分かりましたので、参考にご案内します。

グループポリシーエディターを起動(gpedit.msc)します。
続いて、[コンピュータの構成]→[管理用テンプレート]→[システム]から、「オプションコンポーネントのインストールおよびコンポーネントの修復〜]をWクリックして、ポリシーを有効にします。

デフォルトでは未構成ではなく無効になっていました。
代替ソースのファイルパスを指定します。「代替ソース」となると、Windows Server 2012とかで、NetFx3のインストールを行う際に、よく実施した手法を思い出します。

この設定をしていれば、別にソース設定(-source)を省略できるので、どっちを選ぶか?ですね。

グループポリシーを強制適用するには「/force」を追加します。
gpupdate /force

NetFx3(.NET Framework 3.5)が有効になっているか、無効になっているか調査するには、次のコマンドを入力します。
Get-WindowsOptionalFeature -FeatureName NetFx3 -Online

ここで面倒なのが、Windows Serverなら、WindowsFeatureなんだけど、Windows 10なら、WindowsOptionalFeatureを利用する。共通にしてもらいたいものです。役割の有効化についても、ServerならAddだし、Windows10なら、Enableとかになる。
参考までに、簡単に違いを表でまとめます。

操作 Windows Server Windows 10 DISM
役割の確認 Get-WindowsFeature Get-WindowsOptionalFeature -Online DISM /Online /Get-Features
役割の有効化 Add-WindowsFeature 役割名 Enable-WindowsOptionalFeature -Online -FeatureName 役割名 DISM /Online /Enable-Feature:役割名
役割の無効化 Remove-WindowsFeature 役割名 Disable-WindowsOptionalFeature -Online -FeatureName 役割名 DISM /Online /Disable-Feature:役割名

無効(Disabled)になっているので有効にします。
Enable-WindowsOptionalFeature -FeatureName NetFx3 -Online -LimitAccess
GPO(グループポリシー)の設定を行なっておらず、ソース設定をするには、
Enable-WindowsOptionalFeature -FeatureName NetFx3 -Source "D:¥sources¥sxs" -Online -LimitAccess

これで、.NET Framework 3.5(NetFx3)のオフラインインストールが完了します。

お疲れ様でした。

おすすめの記事