======XPの更新プログラムのダウンロード======
XPの更新プログラムの一覧とダウンロードするための情報と、一括でダウンロードするスクリプト(BATファイル)。および、そのスクリプトで使うソフト(BITSadmin・wget)の説明。\\
以下のスクリプト(BATファイル)で使う環境変数のリストを示す。\\
^環境変数^用途^未指定時のデフォルト^
|SSUPDATE|更新プログラムのフォルダ|カレントフォルダ\UPDATE|
こういう行が各スクリプトの先頭に置かれる。
if not defined SSUPDATE set SSUPDATE=%CD%\UPDATE
=====ブラウザを使ってダウンロードする=====
更新プログラムをダウンロードしたい場合、この二つのサイトを利用する。
* [[https://www.microsoft.com/ja-jp/download/|Microsoft ダウンロード センター]]
* [[https://catalog.update.microsoft.com/|Microsoft Update カタログ]]
UpdateカタログはActiveXコントロールを使っているのでInternet Explorerでないとダウンロードできない。 2016年10月以降は他のブラウザでもダウンロードできるようになった。だが、複数のファイルをまとめてダウンロードする機能はIEでなければ使えない。
過去、更新プログラムはダウンロードセンターとUpdateカタログの両方で提供されてきた。だが、2016年2月ごろ、MicrosoftはXPの更新プログラムの一部をダウンロードセンターから削除した。2016年4月には「一部の更新プログラムについてダウンロードセンターでの提供をとりやめるので、今後はUpdateカタログで探すように」という [[https://blogs.technet.microsoft.com/msrc/2016/04/29/changes-to-security-update-links/|発表]] を行った。
そんなわけで、ダウンロードセンターから消えた更新は、Updateカタログで探すほかない。一方で、Updateカタログになく、ダウンロードセンターにだけ存在する更新もある。ダウロードページは消えたけれど、ファイルは残されているのでダイレクトリンクは有効なものもあったりして・・・。この二つのサイトから目的のファイルを探してダウンロードするのは、結構な手間がかかるのである。
* [[https://support.microsoft.com/ja-jp/help/323166/how-to-download-updates-that-include-drivers-and-hotfixes-from-the-win|Windows Update カタログからドライバーや修正プログラムを含む更新プログラムをダウンロードする方法]] (microsoft)
* [[https://technet.microsoft.com/ja-jp/security/bulletin|Microsoft セキュリティ情報]] - MS番号/KB番号での検索。
=====XPの更新プログラム一覧=====
^ 種類 ^ 一覧表ページ ^ integrate可否 ^
|サービスパック|[[xp-update-list-sp]]| ○ |
|integrate可能な更新|[[xp-update-list-1]]| ○ |
|Internet Explorer 8/7/6|[[xp-update-list-ie]]| - |
|Media Player 11|[[xp-update-list-wmp]]| - |
|.NET Framework|[[xp-update-list-net]]| - |
|その他の更新|[[xp-update-list-2]]| - |
表中の __direct__ と表示のあるリンクをクリックすれば、更新プログラムをダウンロードできる。\\
Updateカタログとダウンロードセンターの両方にある場合は、基本的に同じファイル。\\
Updateカタログのファイルには、ファル名の末尾に40桁の十六進コードが負荷されている。これはファイルのハッシュ値(SHA1値)である。
=====BITSadminでダウンロード=====
いちいちファイル名をクリックしてダウンロードするのは面倒だ。まとめてダウンロードできるスクリプトを書いてみよう。Windowsの場合、インターネット経由でファイルをダウンロードするには、**BITSadmin**.exe コマンドを使う。
バックグラウンド インテリジェント転送サービス(BITS)は、インターネット経由でファイルを転送するサービスだ。複数のファイルを同時にダウンロードしたり、エラーが回復するのを待って再試行する機能がある。Windows UpdateもBITSを使っている。BITSadmin は、BITSをコントロールするためのコマンドだ。\\
bitsadminを使ってファイルをダウンロードするには /transfer オプションを使う。
* [[https://technet.microsoft.com/ja-jp/library/cc772581(v=ws.10).aspx|Bitsadmin/transfer]] (microsoft)
bitsadmin /Transfer Name
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コマンドを使うには、[[https://support.microsoft.com/ja-jp/help/838079/windows-xp-service-pack-2-support-tools|Windows XP Service Pack 2 サポート ツール]] をインストールする必要がある。
^Download\\ Center^ダイレクトリンク^容量^
|[[https://www.microsoft.com/ja-JP/download/details.aspx?id=18546|DC]]|http://download.microsoft.com/download/d/3/8/d38066aa-4e37-4ae8-bce3-a4ce662b2024/WindowsXP-KB838079-SupportTools-ENU.exe|4.7MB|
C:\Program Files\Support Toolsにインストールされ、環境変数PATHも設定される。
XP用のダウンロードバッチファイルはこちら。
{{ :downxp.bat |}} - **XP更新プログラムダウンロードスクリプト**(Windows XP用)
XPのbitsadminは、たまにエラー0x80200002 (BG_E_INVALID_STATE)((**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. --- [[https://msdn.microsoft.com/ja-jp/library/aa362823(v=vs.85).aspx|BITS Return Values]] (msdn) ))で終了することがあるが、ちゃんとダウンロードできているようので、このエラーを無視するようにしてある。
----
=====wgetでダウンロード=====
[[https://www.gnu.org/software/wget/|GNU Wget]]がWindowsに移植されているので、これを使ってダウンロードすることもできる。入手先は[[https://eternallybored.org/misc/wget/|Windows binaries of GNU Wget]]。TLS 1.2をサポートしている(らしい)ので、ダウンロードセンターからは HTTPS でダウンロードするようにしてある。
^ダイレクトリンク^容量^
|https://eternallybored.org/misc/wget/current/wget.exe|3.3MB|
wgetを使ったダウンロードバッチファイル。
{{ :downwget.bat }} - **XP更新プログラムダウンロードスクリプト**(wget)
=====メモ=====
* ダウンロードスクリプトがダウンロードするファイルの総容量は約1.9GB。ダウンロードに数十分かかる。
* ダウンロードセンターとUpdateカタログの両方に同じファイルがある場合は、ダウンロードセンターのファイルを選んでいる。
* 環境変数 SSUPDATE でダウンロード先のフォルダを指定する。変数がない場合は、カレントフォルダの下の UPDATE フォルダが指定される。
* XPのBITSはTLS 1.2をサポートしないので、XP用はダウンロードセンターからもHTTPでダウンロードするようにしている。
^スクリプト^Windows^^転送^必要な\\ ソフト^転送プロトコル^^
^:::^XP^7/8/10^:::^:::^Update Catalog^Download Center^
|[[#一括ダウンロード(Windows Vista/7/8/10用)|down.bat]]|×|○|BITS|-|HTTP|HTTPS|
|[[#一括ダウンロード(Windows XP用)|downxp.bat]]|○|非推奨|BITS|BITSadmin|HTTP|HTTP|
|[[#wgetでダウンロード|downwget.bat]]|○|○|wget|wget|HTTP|HTTPS|
=====ハッシュ値のチェック=====
Updateカタログのファイルは、ファイル名の末尾に40桁の十六進数が追加されている。これはSHA1ハッシュ値だ。この値とファイルのハッシュ値を比較することで、ファイルがエラーなく転送できているか検証できる。WindowsでSHA1を計算するには、FCIVコマンドを使う。
* [[https://support.microsoft.com/ja-jp/help/889768/how-to-compute-the-md5-or-sha-1-cryptographic-hash-values-for-a-file|ファイルの MD5 または sha-1 暗号のハッシュ値を計算する方法]] (microsoft)
* [[https://support.microsoft.com/en-us/help/841290|Availability and description of the File Checksum Integrity Verifier utility]] (microsoft)
^ダイレクトリンク^容量^
|http://download.microsoft.com/download/c/f/4/cf454ae0-a4bb-4123-8333-a1b6737712f7/windows-kb841290-x86-enu.exe|116KB|
インストーラが作った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カタログのファイル名から得ているため)。