[戻る]
一括表示

タイトル
記事No
投稿日
投稿者
参照先
Vista向けHotFix 専用インストールCDについて
8960
: 2016/12/03(Sat) 23:46:34
いちvistaユーザー

お世話になっております。

Vistaにおいて、現状では、SP1適用済みSP2未適用な環境でSP1を含むHotFix 専用インストールCDを実行すると、SP2ではなくSP1を適用しようとして失敗する現象が発生します。
旧SP組み込みを禁止する設定があるのもそのためでしょう。
しかし、SP2インストーラーが存在するのに使えないのはおかしいぞ、というわけで、試行錯誤しました。

VST_INST.CAB の中の setup2.txt の
---------------------------------------------------
rem 適合性診断用の認識OS情報を作成
---------------------------------------------------
という記述の直上に
---------------------------------------------------
IF /I "!NEXTSP!"=="!HDDSP!" SET NEXTSP=&SET NEXTSPEXE=
---------------------------------------------------
を加えてみたところ、うまくいきました。
※「!」は半角です。
タイトル
記事No
投稿日
投稿者
参照先
Re: Vista向けHotFix 専用インストールCDについて
9015
: 2017/08/01(Tue) 18:24:24
蔵番猫

お世話になっております。

この投稿を発見する前、私もこの現象で悩みました。

SP1 が適用済みなのに、適用に失敗したと判断されているようでしたので

\I386\INSTSP.CMD を編集して
--------------------------------------
rem Service Packの適用結果診断
IF /I "!RESULT!"=="3010" SET RESULT=0
--------------------------------------
のあいだに
--------------------------------------
IF /I "!RESULT!"=="1153" SET RESULT=0
--------------------------------------
を加えて、その場を乗り切りました。
ただし、再起動が1回余計に行われます。

ほかのロジックを追っていないので、他の環境では副作用があるかも?
タイトル
記事No
投稿日
投稿者
参照先
Re^2: Vista向けHotFix 専用インストールCDについて
9016
: 2017/08/03(Thu) 22:50:04
いちvistaユーザー

こんにちは、返信ありがとうございます。

改めて VST_INST.CAB の中の setup2.txt を見直してみました。

> rem 適合性診断用の認識OS情報を作成
という記述が3箇所もあることにいまさらながら気づきました。ハズカシー。

それはさておき、結論を先に言うと、
2つの変数 NEXTSP、NEXTSPEXE の値が適切に設定されないのが原因であろうと思われます。

-------------------------------------
IF EXIST ..\svcpack.ini (
FOR /F "USEBACKQ EOL=; TOKENS=1,2 DELIMS==" %%A IN (`find.exe /I "SVCPACK!SVCPACKSPNO!" ..\svcpack.ini`) DO (
IF /I "%%A"=="SVCPACK!SVCPACKSPNO!" IF NOT "%%B"=="" SET NEXTSP=%%B
IF /I "%%A"=="SVCPACK!SVCPACKSPNO!EXE" IF NOT "%%B"=="" SET NEXTSPEXE=%%B
)
)
-------------------------------------
によって各変数に代入されますが、ここで代入されるのは SP1 のデータです。

-------------------------------------
rem SP2 以上が有るOSで、現環境より2つ以上新しい Service Pack を適用する場合は、
rem 現環境の次の Service Pack から順次適用する
SET VSTSP0_SP2=
IF /I 1!HDDSPNO! LSS 1!LIMITSPNO! SET VSTSP0_SP2=YES
IF /I "!VSTSP0_SP2!"=="YES" (
IF NOT DEFINED NEXTSP (
ECHO しかし、Service Pack !SVCPACKSPNO! の適用には、
ECHO Service Pack !LIMITSPNO! 迄が事前に適用されている必要が有ります。
ECHO Service Pack !LIMITSPNO! 以前を含めたインストール CD-ROM を作成し直して下さい。
CALL :ERRORDISP
)
) ELSE (
IF NOT DEFINED NEXTSP SET NEXTSP=!SVCPACK!
IF NOT DEFINED NEXTSPEXE SET NEXTSPEXE=!SVCPACKEXE!
)
-------------------------------------
とのコードがありますが、SP1 のデータが入った各変数を SP2 に修正する処理がありません。

そこで、
-------------------------------------
IF NOT DEFINED NEXTSP SET NEXTSP=!SVCPACK!
IF NOT DEFINED NEXTSPEXE SET NEXTSPEXE=!SVCPACKEXE!
-------------------------------------
を、以下のように書き換えました。
-------------------------------------
IF /I 1!HDDSPNO! EQU 1!LIMITSPNO! (
SET NEXTSP=!SVCPACK!
SET NEXTSPEXE=!SVCPACKEXE!
) ELSE (
IF NOT DEFINED NEXTSP SET NEXTSP=!SVCPACK!
IF NOT DEFINED NEXTSPEXE SET NEXTSPEXE=!SVCPACKEXE!
)
-------------------------------------

Vista(SPなし、SP1、SP2) と Windows 7 SP1 では問題ありませんでした。
ただ、Windows 7 SPなしの環境を持ち合わせていないので、検証できておりません。
タイトル
記事No
投稿日
投稿者
参照先
Re^3: Vista向けHotFix 専用インストールCDについて
9018
: 2017/08/08(Tue) 23:50:05
蔵番猫

早速の検証・解析に頭が下がります。

今回インストールした実機での再インストールは、時間的に行えないので、しばらく後に予定している、別マシンのインストール時に使わせていただきたいと思います。

返信ありがとうございました。

- WebForum -