LoginSignup
1
4

More than 3 years have passed since last update.

新元号対応 Windows、Office、.NET Framework オフラインインストール手順

Last updated at Posted at 2019-04-11

元号対応用に作成した、Windows、Office、.NET Framework オフラインインストール手順をまとめています。

調査

以下の「.NET、Office、Windows」に関するページから調査

該当ダウンロードファイル調査のヒント

  1. 適用対象となる環境を確認する

    • .NET Frameworkのバージョン(3.5 or 4.5.2 or 4.6以降)
    • Officeのバージョン、サービスパックのバージョン
      • 使用している製品(Wordなど)
    • Windows のバージョン、サービスパックのバージョン、プラットフォーム(x86 or x64)
  2. 以下の順番で対象となるプログラムを確認する

    1. 最新のロールアップ(累積アップデート)
      • 前提となる更新プログラム(KB)があるなら、そちらも確認する
        • 例えば、最新の SSU(サービススタック更新プログラム)、などがある。
    2. 最新のロールアップの後に出ている更新プログラム
      • 前提となる更新プログラム(KB)があるなら、そちらも確認する

媒体作成

ファイルダウンロード

.NET Framework、Windows

  1. Microsoft Update Catalogからダウンロードする
    • 拡張子がmsu
    • KB番号を入力してダウンロード
    • KB番号ごとにフォルダを作成して保存。フォルダ名、ファイル名は後述

Office

  1. 各更新の「更新プログラムのダウンロードおよびインストール方法」のリンクからダウンロード
    • 拡張子がexe
    • KB番号ごとにフォルダを作成して保存。フォルダ名、ファイル名は後述

保存(フォルダ分け)

フォルダ書式
<<NET or Office or Windows>>_<<西暦下2桁+月>>_<<KB番号>>
フォルダ例
NET_1903_kb4488669
ファイル書式
<<NET or Office or Windows>>_<<西暦下2桁+月>>_<<元のファイル名>>
ファイル例
NET_1903_ndp45-kb4488669-x86_7e600795492a759f2ad7889765690746e027b806.exe

スクリプトの作成

オフラインインストール用スクリプト

copyandupdate.bat
@echo off
cls
pause
xcopy "%~dp0\windows_update_patch" "c:\windows_update_patch" /s /e /i
cscript "c:\windows_update_patch\installallatonce.vbs
installallatonce.vbs
Set objShell=CreateObject("Shell.Application") 
   objShell.ShellExecute "cmd.exe", _
   """" & "/k c:\windows_update_patch\bat\install_updates.bat" & """", _
   "", _
   "runas", _
   1
getwindowsupdatelist.bat
@echo off

rem ソフトウェア名をファイルに出力(DisplayNameで開始している行のみ、セキュリティの更新ソフトのみ
for /F "delims=" %%A IN ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall") DO (
    for /F "tokens=2,*" %%I in ('reg query %%A /s ^| findstr "\<DisplayName" ^| findstr "(KB"') do (
        echo %%J
    )
)

rem ソフトウェア名をファイルに出力(DisplayNameで開始している行のみ、セキュリティの更新ソフトのみ
for /F "delims=" %%A IN ("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall") DO (
    for /F "tokens=2,*" %%I in ('reg query %%A /s ^| findstr "\<DisplayName" ^| findstr "(KB"') do (
        echo %%J
    )
)
install_updates.bat
@echo off
REM "install_updates.bat"

REM Note: Don't use a space in the following paths.
REM Note: If the other machine's OS is 32-bit, you must set "OS=86".
set PATCH_HOME=C:\windows_update_patch\
set PATCH_DIR=target\
set BAT_DIR=bat\
set MSU_KEYWORD=Windows6.1
set EXE_KEYWORD=
REM set OS=64
set OS=86
set INFO_LOG1=install_pc_info_pre.txt
set INFO_LOG2=install_pc_info_after.txt
set MSU_LOG=installed_msu_list.txt
set EXE_LOG=installed_exe_list.txt
set OTHER_LOG=installed_other_list.txt
set EVENT_LOG=installed_log.evtx

cd %PATCH_HOME%%PATCH_DIR%

echo Windows Updates are starting...

pause

echo %date% %time% > %PATCH_HOME%%INFO_LOG1%
echo インストール前 >> %PATCH_HOME%%INFO_LOG1%
systeminfo >> %PATCH_HOME%%INFO_LOG1%
call %PATCH_HOME%%BAT_DIR%getwindowsupdatelist.bat >> %PATCH_HOME%%INFO_LOG1%
echo %date% %time% >> %PATCH_HOME%%INFO_LOG1%

REM msu
echo %date% %time% > %PATCH_HOME%%MSU_LOG%
for /f "usebackq" %%I in (`dir /b /a-d /s *%MSU_KEYWORD%*-x%OS%*.msu`) do (
  echo Installing "%%I".
  echo %%I >> %PATCH_HOME%%MSU_LOG%
  wusa %%I /quiet /norestart /log:%PATCH_HOME%%EVENT_LOG%
)
echo %date% %time% >> %PATCH_HOME%%MSU_LOG%

REM exe
echo %date% %time% > %PATCH_HOME%%EXE_LOG%
for /f "usebackq" %%I in (`dir /b /a-d /s *%EXE_KEYWORD%*-x%OS%*.exe`) do (
  echo Installing "%%I".
  echo %%I >> %PATCH_HOME%%EXE_LOG%
  %%I /quiet /norestart /log:%PATCH_HOME%%EVENT_LOG%
)
echo %date% %time% >> %PATCH_HOME%%EXE_LOG%

del /f %PATCH_HOME%%EVENT_LOG%.dpx

echo %date% %time% > %PATCH_HOME%%INFO_LOG2%
echo インストール後 >> %PATCH_HOME%%INFO_LOG2%
systeminfo >> %PATCH_HOME%%INFO_LOG2%
call %PATCH_HOME%%BAT_DIR%getwindowsupdatelist.bat >> %PATCH_HOME%%INFO_LOG2%
echo %date% %time% >> %PATCH_HOME%%INFO_LOG2%

echo Windows Updates are done.
echo Reboot now!

shutdown /r /t 0

OSに合わせて、以下の部分を編集する

install_updates.bat
set MSU_KEYWORD=Windows6.1
set OS=86

ファイルの配置

  1. 以下に従いファイルを配置する
ISO
│copyandupdate.bat
└windows_update_patch
 │installallatonce.vbs
 └bat
  │getwindowsupdatelist.bat
  │install_updates.bat
 └target
  │ダウンロードしたファイル(msu, exe)

インストールテスト

テスト環境の準備

  1. 仮想環境で、調査したOS、Office、.NETで環境を構築する
  2. 事前にスナップショット(Hyper-Vならチェックポイント)を取る

インストール

  1. ISOフォルダを、ネットワーク、または媒体(ISOイメージでもよい)に配置する
  2. 可能なら、IPアドレスを設定する(アップデート後にIPアドレスの設定が消失することがある事象に対する確認のため)
  3. copyandupdate.batを実行する

レジストリの編集

  1. 必要に応じ、レジストリの編集を行う。ただし、令和の追加は、運用環境では動作保証外なので注意。令和の追加、パッチの中で追加されるべきもの。

参考にしたサイト

[tips][Windows] Windows Updateを一括で行う方法
https://casualdevelopers.com/tag/bat/

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4