【Win10】メディア不要!!PowerShellで.NET Framework3.5の有効化

【Win10】メディア不要!!PowerShellで.NET Framework3.5の有効化

こちらの記事でWindows10で.Net Framework 3.5をオフラインで有効化する方法を書きました。
【Win10】0x80240438が発生して.NET Framework 3.5の有効化が出来ない!?

この方法はWindows10のインストーラーやローカルグループポリシーの設定を変更するなど少々手間がかかります。 一度だけなら苦になりませんが、会社などたくさんのパソコンを管理していると時間をとられてしまいます。

出来ればバッチやActiveDirectoryなどで自動化できればと思っていました。
すると先日、この記事を読んでくださった方がPowerShellから.NET Framework 3.5を有効化する方法を教えてくださいました。
この方法でも0x80240438などのエラーは回避できることも確認済です。

環境

Windows 10 pro 64bit

.NET Framework 3.5を有効化するPowerShellのコマンドレッド

Power Shell を管理者権限で起動する

[スタート]を右クリック → [Windows PowerShell(管理者)]を選択します。

Power Shell で.NET Framework3.5を有効化するコマンドレットを実行

次のコマンドレットを上から順番にコピペした後に[Enter]で実行します。
# 行はコメントなので実行するときは無視してください。

# WSUSサーバーの設定レジストリを変更(0:Windows Updateを利用する, 1:SUSを利用する)
Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name 'UseWUServer' -Value 0;

# Windows Update サービスを再起動
restart-service wuauserv;

# Windows Update から .NET Framework 3.5 の機能ファイルをインストール
dism /online /Enable-Feature /FeatureName:NetFx3;

# WSUSサーバーの設定レジストリを元に戻す
Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name 'UseWUServer' -Value 1;

これだけで.NET Framework 3.5の有効化が完了です。
今までインストーラーをUSBメモリに保存しておいて、設定の度に取り出してきていた手間も各種設定を変える手間も無くなります。
教えてくださった55さんに感謝です。

ただ、これだけでも簡単ですがPowerShellを起動したりコマンドレットをコピペも面倒に感じてきます。
そこで、今回の処理をスクリプトファイルにまとめておきます。

スクリプトファイルを作成する

メモ帳を開き、先ほどの処理を張り付けます。
そして、.ps1という拡張子でファイルを保存して終わりです。

Framework_35_Install.ps1
# WSUSサーバーの設定レジストリを変更(0:Windows Updateを利用する, 1:SUSを利用する)
Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name 'UseWUServer' -Value 0;

# Windows Update サービスを再起動
restart-service wuauserv;

# Windows Update から .NET Framework 3.5 の機能ファイルをインストール
dism /online /Enable-Feature /FeatureName:NetFx3;

# WSUSサーバーの設定レジストリを元に戻す
Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name 'UseWUServer' -Value 1;

PowerShellスクリプトファイルの実行方法

PowerShellのスクリプトファイルはダブルクリックをしても実行できません。
先ほどのファイルを右クリックし[PowerShellで実行]を選択すれば実行できます。

.NET Framework 3.5を有効化する際に発生した0x80240438のエラーはWSUSが関係していそうなのでWSUSの設定でも対応ができそうですが、その環境がないので当面は教えていただいたPowerShellで有効化する方法で運用していこうと思います。

comment

  1. 通りすがり 2020/03/31(火) 11:09

    PaworShellになっているところがあります。

  2. manohito 2020/05/21(木) 10:37

    Microsoft コミュニティから来ました。
    上記の「# Windows Update から .NET Framework 3.5 の機能ファイルをインストール」
    というところで、これを実行すると、ゲージが14.6%のところで止まった後一気に100%になり、
    「エラー: 12152

    DISM が失敗しました。操作は実行されませんでした。
    詳細については、ログ ファイルを確認してください。」
    と出て終了してしまいます。

    この記事の内容で解決された方もおられるということですので、私の環境が特殊なのかもしれませんが、何かアドバイスを頂くことは可能でしょうか。

    宜しくお願いします。

    • y.chiba 2020/05/21(木) 16:04

      こちらでわかる範囲で調べてみましたが、システムファイルが破損している可能性があるようです。
      以下の診断と修復方法を試してみてはいかがでしょうか?
      実行する前にバックアップを取っておくことをお勧めします。

      1.コマンドプロンプトを起動(管理者権限で)
      2.以下のコマンドを実行(チェックのみで修復はしません)
       DISM.exe /Online /Cleanup-image /Restorehealth
      3.以下のコマンドを実行(システムファイルの修復を行います)
       sfc /scannow

      参考URL
      <a href="https://support.microsoft.com/ja-jp/help/947821/fix-windows-update-errors-by-using-the-dism-or-system-update-readiness" rel="nofollow ugc">Microsoftサポート</a>
      <a href="https://onoredekaiketsu.com/repair-windows-with-dism-and-sfc-scannow/#toc5" rel="nofollow ugc">DISM.exeオプション</a>

      この方法で修復できない場合は、ハードウェアの破損も調査してもいいかもしれません。
      使用しているパソコンのメーカーがハードウェア診断(Diagnostics)を用意していると思います。
      ハードウェアも問題なければ、自力で修復することは難しいので、クリーンインストールをしてみてください。

  3. Mさん 2021/06/11(金) 00:18

    コメント失礼します。
    上記の「# Windows Update から .NET Framework 3.5 の機能ファイルをインストール」を実行したところ、

    「エラー: 87

    コマンドの処理中にエラーが発生しました。
    コマンド ライン引数が有効であることを確認してください。詳細については、ログ ファイルを確認してください。」
    と出てしまいます。
    また、コントロールパネルから有効化を実行した場合は
    「パラメーターが間違っています。

    エラーコード: 0x80070057」
    が出てしまいます。

    アドバイスいただけると幸いです。

Commentsこの記事のコメント

メールアドレスが公開されることはありません。お気軽にコメントどうぞ。

人気記事