経緯
ドメイン環境のWindows7のクライアントPCに.NETフレームワーク4.8を配布したいので、バッチファイルを作成しました。
インストール対象OSはWindows7 SP1としております。
@echo off
setlocal ENABLEDELAYEDEXPANSION
rem echo start >> %USERPROFILE%\Desktop\install.log
rem -- win7判定
ver | find /i "Version 6.1." > nul
if %ERRORLEVEL% neq 0 GOTO :end
rem echo win7 >> %USERPROFILE%\Desktop\install.log
rem -- win7sp判定
FOR /F "tokens=3 delims=," %%A IN ('%SystemRoot%\System32\systeminfo.exe /FO CSV /NH') DO SET osvers=%%A
ECHO %osvers%|FIND "Service Pack 1">NUL
IF %ERRORLEVEL% neq 0 GOTO :end
rem echo win7 SP1 >> %USERPROFILE%\Desktop\install.log
rem -- framework4.5以降がインストールされているか
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v "Release"
IF %ERRORLEVEL% neq 0 goto install
rem -- framework4.5以降がインストールされている時、そのバージョンを取得
FOR /F "TOKENS=1,2,*" %%I IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v "Release"') DO IF "%%I"=="Release" SET VAL1=%%K
echo KeyExist >> %USERPROFILE%\Desktop\install.log
rem -- framework4.8がインストールされているか
IF %VAL1% lss 528040 goto install
goto end
rem -- framework4.8インストール
:install
rem echo ***Install*** >> %USERPROFILE%\Desktop\install.log
\\server\Framework48\ndp48-x86-x64-allos-enu.exe /passive /showfinalerror /promptrestart
:end
rem echo end >> %USERPROFILE%\Desktop\install.log
endlocal
最後に
後はグループポリシーのログオンスクリプトでこのバッチファイルを呼び出すようにすれば完了です。
また、フレームワークのバージョンを確認するには下記リンクを参照してください。
インストールされている .NET Framework バージョンを確認する