Only Neat Thing

たったひとつの冴えたやり方

ユーザ用ツール

サイト用ツール


サイドバー

スタートページ

IBM ThinkPad X20/21

Windows XP

Lenovo ThinkPad X200

Intel DG965WH

Panasonic Let'snote CF-R

SSD

Hyper-V使いこなし

Misc

Action unknown: copypageplugin__copy
download-xp-update

XPの更新プログラムのダウンロード

 XPの更新プログラムの一覧とダウンロードするための情報と、一括でダウンロードするスクリプト(BATファイル)。および、そのスクリプトで使うソフト(BITSadmin・wget)の説明。

 以下のスクリプト(BATファイル)で使う環境変数のリストを示す。

環境変数用途未指定時のデフォルト
SSUPDATE更新プログラムのフォルダカレントフォルダ\UPDATE

 こういう行が各スクリプトの先頭に置かれる。

if not defined SSUPDATE set SSUPDATE=%CD%\UPDATE

ブラウザを使ってダウンロードする

 更新プログラムをダウンロードしたい場合、この二つのサイトを利用する。

 UpdateカタログはActiveXコントロールを使っているのでInternet Explorerでないとダウンロードできない。 2016年10月以降は他のブラウザでもダウンロードできるようになった。だが、複数のファイルをまとめてダウンロードする機能はIEでなければ使えない。

 過去、更新プログラムはダウンロードセンターとUpdateカタログの両方で提供されてきた。だが、2016年2月ごろ、MicrosoftはXPの更新プログラムの一部をダウンロードセンターから削除した。2016年4月には「一部の更新プログラムについてダウンロードセンターでの提供をとりやめるので、今後はUpdateカタログで探すように」という 発表 を行った。

 そんなわけで、ダウンロードセンターから消えた更新は、Updateカタログで探すほかない。一方で、Updateカタログになく、ダウンロードセンターにだけ存在する更新もある。ダウロードページは消えたけれど、ファイルは残されているのでダイレクトリンクは有効なものもあったりして・・・。この二つのサイトから目的のファイルを探してダウンロードするのは、結構な手間がかかるのである。

XPの更新プログラム一覧

種類 一覧表ページ integrate可否
サービスパックXPのサービスパック
integrate可能な更新XPの更新プログラム一覧 (1)
Internet Explorer 8/7/6XPの更新プログラム一覧 (IE) -
Media Player 11XPの更新プログラム一覧 (WMP11) -
.NET FrameworkXPの更新プログラム一覧 (.NET) -
その他の更新XPの更新プログラム一覧 (2) -

 表中の direct と表示のあるリンクをクリックすれば、更新プログラムをダウンロードできる。
 Updateカタログとダウンロードセンターの両方にある場合は、基本的に同じファイル。
 Updateカタログのファイルには、ファル名の末尾に40桁の十六進コードが負荷されている。これはファイルのハッシュ値(SHA1値)である。

BITSadminでダウンロード

 いちいちファイル名をクリックしてダウンロードするのは面倒だ。まとめてダウンロードできるスクリプトを書いてみよう。Windowsの場合、インターネット経由でファイルをダウンロードするには、BITSadmin.exe コマンドを使う。

 バックグラウンド インテリジェント転送サービス(BITS)は、インターネット経由でファイルを転送するサービスだ。複数のファイルを同時にダウンロードしたり、エラーが回復するのを待って再試行する機能がある。Windows UpdateもBITSを使っている。BITSadmin は、BITSをコントロールするためのコマンドだ。
 bitsadminを使ってファイルをダウンロードするには /transfer オプションを使う。

bitsadmin /Transfer Name <RemoteFileName> <LocalFileName>

 Nameはジョブ名、RemoteFileNameは転送元のURL、LocalFileNameはファイル名をフルパスで指定する。

 これを羅列すれば良いのだが、BITSはキューに一つひとつファイルを投げ込むと、スループット調整のおかげで転送速度が上がらない。複数のファイルを一括して転送開始させたほうがよい。その場合、RemoteFileName LocalFileName のペアを複数指定する。


一括ダウンロード(Windows Vista/7/8/10用)

 一括ダウンロードのバッチファイルを作ってみた。Windows 7や10なら動く(はず)。

down.bat - XP更新プログラムダウンロードスクリプト(Windows Vista/7/8/10用)

bitsadmin.exe がときおり Unable to add file - 0x8020006c というエラーを発生させ、ジョブを追加してくれないときがある。エラーコード一覧にないコードなのだが、リトライすると正常動作するので、3秒待ってリトライするスクリプトにしてある。

一括ダウンロード(Windows XP用)

 Windows XPでbitsadminコマンドを使うには、Windows XP Service Pack 2 サポート ツール をインストールする必要がある。

 C:\Program Files\Support Toolsにインストールされ、環境変数PATHも設定される。

 XP用のダウンロードバッチファイルはこちら。

downxp.bat - XP更新プログラムダウンロードスクリプト(Windows XP用)

 XPのbitsadminは、たまにエラー0x80200002 (BG_E_INVALID_STATE)1)で終了することがあるが、ちゃんとダウンロードできているようので、このエラーを無視するようにしてある。

wgetでダウンロード

 GNU WgetがWindowsに移植されているので、これを使ってダウンロードすることもできる。入手先はWindows binaries of GNU Wget。TLS 1.2をサポートしている(らしい)ので、ダウンロードセンターからは HTTPS でダウンロードするようにしてある。

ダイレクトリンク容量
https://eternallybored.org/misc/wget/current/wget.exe3.3MB

 wgetを使ったダウンロードバッチファイル。

downwget.bat - XP更新プログラムダウンロードスクリプト(wget)

メモ

  • ダウンロードスクリプトがダウンロードするファイルの総容量は約1.9GB。ダウンロードに数十分かかる。
  • ダウンロードセンターとUpdateカタログの両方に同じファイルがある場合は、ダウンロードセンターのファイルを選んでいる。
  • 環境変数 SSUPDATE でダウンロード先のフォルダを指定する。変数がない場合は、カレントフォルダの下の UPDATE フォルダが指定される。
  • XPのBITSはTLS 1.2をサポートしないので、XP用はダウンロードセンターからもHTTPでダウンロードするようにしている。
スクリプトWindows転送必要な
ソフト
転送プロトコル
XP7/8/10Update CatalogDownload Center
down.bat×BITS-HTTPHTTPS
downxp.bat非推奨BITSBITSadminHTTPHTTP
downwget.batwgetwgetHTTPHTTPS

ハッシュ値のチェック

 Updateカタログのファイルは、ファイル名の末尾に40桁の十六進数が追加されている。これはSHA1ハッシュ値だ。この値とファイルのハッシュ値を比較することで、ファイルがエラーなく転送できているか検証できる。WindowsでSHA1を計算するには、FCIVコマンドを使う。

 インストーラが作ったFCIV.EXEを、カレントフォルダかC:\Windowsにコピーしておく。

hotfixhash.xml - FCIVコマンド用比較ハッシュ値のXMLファイル

 XMLファイルをダウンロードしてカレントフォルダに置いたら、下記のコマンドを実行する。

FCIV -v -sha1 -xml HotFixHash.xml -bp %SSUPDATE%\

 All files verified successfully と表示されれば成功。

 以下の5つのファイルについては、ハッシュ値をHotFixHash.xmlファイルに入れてないので、FCIVでチェックがされない。

  • SP1aExpress.exe - ファイル名のSHA1値が間違っているため。
  • wmp11-windowsxp-x86-ja-jp.exe / dotNetFx40_Client_x86.exe / dotNetFx40_Client_x86_x64.exe / dotNetFx40_Full_x86.exe - Updateカタログとダウンロードセンターのファイルが異なっているため(ハッシュ値はUpdateカタログのファイル名から得ているため)。
1)
BG_E_INVALID_STATE (0x80200002): The requested action is not allowed in the current job state. The job might have been canceled or completed transferring. It is in a read-only state now. — BITS Return Values (msdn)
download-xp-update.txt · 最終更新: 2019/06/19 01:07 by admin

ページ用ツール