Windows system >> Windowsの知識 >  >> Windows 2003システムチュートリアル >> Windows 2003のよくある質問 >> Win 2003自動アップグレードパッチ機能の詳細な分析

Win 2003自動アップグレードパッチ機能の詳細な分析

  

何人かの読者は、バッチWindows自動アップグレードファイルに関する問題を報告しています。一部のパッチパッケージはインストール中にエラーメッセージが表示され、続行できません。

調査の結果、Windowsには主に2種類のパッチがあり、それぞれ異なるパラメータを使用する必要があるため、パラメータが間違っているとインストールされないため、パッチごとに異なるパラメータが必要になります。詳細に分析しましょう。

画像からパッチの種類を確認します。

図1に示すように、Windows 2003 Serverのパッチファイルを同じディレクトリに配置します。

その前にパッチファイル名がはっきりと表示されます。アイコンには2種類あります。1つは単純な実行可能アイコン、もう1つは圧縮ファイルをマークする実行可能アイコンです。

属性分析フォーマットから

WindowsServer2003-KB823559-x86-ENU.exeファイルのアイコンは、単純な実行可能アイコンです。図2からこのパッチのヘルプ情報を見ることができ、パッチをインストールするのにマイクロソフトのアップデートプログラムを使用することがわかりました。このパッチのバージョン情報は、図3から見ることができます。これはSFXCAB.EXEによって作成されており、一般的な実行可能ファイルのアイコンを持つ他のすべてのパッチも同様のプロパティを持っています。

DirectX9-KB819696-x86-ENU.exeファイルのアイコンは、圧縮ファイルの実行ファイルアイコンで、パッチのヘルプ情報を見ることができます。認識されるパラメータには/Uと/Zは含まれていません。実行に/Uパラメータを使用すると、エラーが発生します。同様に、パッチのバージョン情報を見ると、DirectX9-KB819696-x86-ENUパッチはWEXTRACT.EXEから派生したものであり、フラグ圧縮ファイルを含む実行可能ファイルのアイコンを持つ他のすべてのパッチも同様の特性を持っています。 。

Windowsには、異なるパッチと異なるパラメータを使用した2種類のパッチがあることは明らかです。

パッチフォーマットを自動的に区別する

バッチファイル内のこれら2種類のパッチをどのように区別しますか。最も安全な方法は、パッチファイルのリソース情報を検出する小さなプログラムを見つけることです - パッチリソースに圧縮ファイルをマークする実行可能ファイルのアイコンが含まれている場合、パッチは2番目のタイプのパッチです。アイコンを除いて最初の種類のパッチを除いて、/U /Q /Zパラメータを使ってパッチをインストールできます。

これを行うにはもっと簡単な方法があります。Windowsの内部コマンドを使用するだけで、特別なプログラムは必要ありません。パッチファイルで特徴文字列を見つけます文字列が特定の種類のパッチにのみ存在する場合は、これに基づいてパッチの種類を区別できます。

手順1:図4に示すように、WindowsServer2003-

KB823559-x86-ENU.exeファイルとDirectX9-KB819696-x86-ENU.exeファイルをテキストエディタで開きます。文字列 "_SFX_CAB_EXE_PATH"などの多くの機能文字列はSFXCAB.EXEタイプのパッチにのみ存在し、文字列 "CABINET"と "WEXTRACT"はWEXTRACT.EXEタイプのパッチファイルにのみ存在します。そのため、パッチファイルの種類を判断するために文字列を見つける方法を使用できます。

手順2:[実行]メニューで[cmd]と入力してから、パッチが保存されているフォルダに移動し、次のコマンドを実行してパッチファイルに必要なパラメータを指定します。 >

(@findstr _SFX_CAB_EXE_PATHパッチファイル名> nul&< @echoパラメータ/U /Q /Z)| |  @echoパラメータ/Q

上記のコマンドは、文字列_SFX_CAB_EXE_PATHが見つかった場合、パッチは/U /Q /Zパラメータを使用し、それ以外の場合は/Qパラメータを使用します。

3番目のステップ:実行結果を図5に示します。

簡単な方法一度だけ

あなたが最初に判断を識別し、次に結果に従ってパラメータを追加し、そして次にバッチプロセスを実行するなら、それはあまりにも面倒です。パッチの判断とインストールを組み合わせた完全なバッチコマンドは次のとおりです。

FOR /R %% F IN(* .exe)DO @((@ findstr _SFX_CAB_EXE_PATH" %% F";> nul&& @start /wait %% F /U /Q /Z)| |  @start /wait %% F /Q)

qchain.exe

バッチファイルをパッチディレクトリに置きます。コマンド用に、パッチファイルを同じディレクトリに置く必要はありません。 /Rパラメータは自動的にすべてのサブディレクトリを検索します。注:2002年12月以降のパッチの場合、基本的にqchainコマンドを使用する必要はありません。新しいパッチにはこのコマンドが組み込まれています。

Copyright © Windowsの知識 All Rights Reserved