LoginSignup
2
0

More than 3 years have passed since last update.

Windows 10の全エディションにWindows Updateを適用する

Last updated at Posted at 2020-02-13

<実験的備忘録>
Windows 10 64bit版のinstall.wim中の全エディションに2020年2月のWindows Updateを適用する。
※実験のためハードコーディングしているので注意
※対象はmsuファイルのみ、exeはdismで適用できないので扱わない。
Windows7/10ロールアップ適用統合ディスク作成バッチファイルが元ネタ。

Windows Update統合ISO作成用バッチも参照願います。

作業用バッチ

2020/02/14 更新:適用対象ファイル追加

w10.cmd
Rem ***************************************************************************
@Echo Off
    Cls

Rem *** 作業開始 **************************************************************
:START
    Echo *** 作業開始 ******************************************************************
    Echo %DATE% %TIME%

    SetLocal EnableExtensions
    SetLocal EnableDelayedExpansion

Rem --- 作業環境確認 ----------------------------------------------------------
    If /I "%USERNAME%" NEQ "Administrator" (
        If /I "%SESSIONNAME%" NEQ "" (
            Echo 管理者特権で実行して下さい。
            GoTo DONE
        )
    )

Rem --- 環境変数設定 ----------------------------------------------------------
    For /F "usebackq delims=" %%I In (`Echo %0`) Do (
        Set WRK_DIR=%%~dpI
        Set WRK_DIR=!WRK_DIR:~0,-1!
        Set WRK_FIL=%%~nxI
        Set WRK_NAM=%%~nI
    )

    Set NOW_DAY=%date:~0,4%%date:~5,2%%date:~8,2%

    If /I "%time:~0,1%" EQU " " (
        Set NOW_TIM=0%time:~1,1%%time:~3,2%%time:~6,2%
    ) Else (
        Set NOW_TIM=%time:~0,2%%time:~3,2%%time:~6,2%
    )

    For /F "tokens=2 usebackq delims=\" %%I In ('!WRK_DIR!') Do (Set WRK_TOP=%%~dI\%%~I)

:SETTING
Rem *** 作業環境設定 **********************************************************
    Set DEF_TOP=C:\WimWK

    If /I "!WRK_TOP!" EQU "!DEF_TOP!" (
        Set WIM_TOP=!DEF_TOP!
    ) Else (
:INP_FOLDER
        Set WIM_TOP=!DEF_TOP!
        Set /P WIM_TOP=作業環境のフォルダーを指定して下さい。(規定値[!WIM_TOP!]
        If /I "!WIM_TOP!" EQU "" (Set WIM_TOP=C:\WimWK)

        Set INP_ANS=N
        Echo "!WIM_TOP!"
        Set /P INP_ANS=上記でよろしいですか? [Y/N] ^(Yes/No^)(規定値[!INP_ANS!]
        If /I "!INP_ANS!" NEQ "Y" (GoTo INP_FOLDER)
    )

Rem ***************************************************************************
    Set DVD_SRC=H:\
Rem Set WIM_TOP=C:\WimWK
    Set WIM_PKG=!WIM_TOP!\pkg
    Set WIM_WRK=!WIM_TOP!\wrk
    Set WIM_WUD=!WIM_PKG!\w10\x64
    Set WIM_IMG=!WIM_WRK!\w10\x64\img
    Set WIM_MNT=!WIM_WRK!\w10\x64\mnt

    If Exist "!WIM_IMG!" (RmDir /S /Q "!WIM_IMG!")
    If Exist "!WIM_MNT!" (RmDir /S /Q "!WIM_MNT!")

    MkDir "!WIM_IMG!"
    MkDir "!WIM_MNT!"

    Robocopy /J /MIR /A-:RHS /NDL /NC /NJH /NJS /NFL "!DVD_SRC!\" "!WIM_IMG!"

    For /F "tokens=1* usebackq" %%I In (`Dism /Get-WimInfo /WimFile:"!WIM_IMG!\sources\install.wim" ^| FindStr "名前:"`) Do (
        Set WIN_TYP=%%~J
        Echo *** %DATE% %TIME% : [!WIN_TYP!] ***
        Dism /Mount-WIM /WimFile:"!WIM_IMG!\sources\install.wim" /Name:"!WIN_TYP!" /MountDir:"!WIM_MNT!"               || GoTo :DONE
        Dism /Image:"!WIM_MNT!" /Add-Package /IgnoreCheck /PackagePath:"!WIM_WUD!\windows10.0-kb4538674-x64.msu"       || GoTo :DONE
        Dism /Image:"!WIM_MNT!" /Add-Package /IgnoreCheck /PackagePath:"!WIM_WUD!\windows10.0-kb4534132-x64-ndp48.msu" || GoTo :DONE
        Dism /Image:"!WIM_MNT!" /Add-Package /IgnoreCheck /PackagePath:"!WIM_WUD!\windows10.0-kb4524244-x64.msu"       || GoTo :DONE
        Dism /Image:"!WIM_MNT!" /Add-Package /IgnoreCheck /PackagePath:"!WIM_WUD!\windows10.0-kb4537759-x64.msu"       || GoTo :DONE
        Dism /Image:"!WIM_MNT!" /Add-Package /IgnoreCheck /PackagePath:"!WIM_WUD!\windows10.0-kb4532693-x64.msu"       || GoTo :DONE
        Dism /UnMount-Wim /MountDir:"!WIM_MNT!" /Commit                                                                || GoTo :DONE
    )

Rem *** 作業終了 **************************************************************
:DONE
    EndLocal
    Echo *** 作業終了 ******************************************************************
    Echo %DATE% %TIME%
    Echo [Enter]を押下して下さい。
    Pause > Nul 2>&1
    Echo On

オマジナイ

万が一、異常処理が起きて作業フォルダーが削除できない時のオマジナイ。

TakeOwn /F "C:\WimWK\wrk\w10\x64\mnt" /A /R /D Y > Nul
ICacls "C:\WimWK\wrk\w10\x64\mnt" /inheritance:e /T /C /L /Q > Nul
RmDir /S /Q "C:\WimWK\wrk\w10\x64\mnt"
2
0
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
2
0