はるかぜ

気ままてきとう雑記。 本HPは左のHP紹介欄バナーから。

いまさらWindows 2000の更新を…

 しばらく、Windows 2000の導入とはご無沙汰だったのですが、
こないだ趣味で買ったパソコンが、ちょうどWindows 2000を動かしたい機種だったので、
重い腰を上げて、更新の下準備をし始めたのでした。
この順番に至った経緯(いきさつ)なんていうのを話しておると、かなり長くなるので、
まずは、やったことを先に取り上げたいと思います。

・準備するもの
(リンクは切れているものが多いですが、
正規かWSUS Offline Updateが引っ張っているところをピックアップしています)
[0]ネットワークに接続されているWindows 2000機(今し仮想環境がいいんでしょうね)
[1]WSUS Offline Update 6.6.5
[2]REG.EXE
[3]MSXSL.EXE
[4]STREAMS.ZIP
[5]WSUSSCN2.CAB
[6]Windows 2000 Service Pack 4
[7]Windows 2000 SP4 用の更新プログラム ロールアップ 1(KB891861)
[8]ルート証明書の更新ファイル(ROOTSUPD.EXE)
[9]DirectX 9.0c(2010年2月版)
[10]Windows Media Player 9
[11]Windows Installer 3.1(KB893803)
[12]Internet Explorer 6 SP1導入ファイル群のURL
以下、必要であれば、
[13].NET framework 1.1日本語 Language Pack
[13-2]KB867460KB971108KB979906
[14].NET framework 2.0 SP2日本語 Language PackWindows Installer 3.1(KB893803)KB835732
[14-2]KB971111KB974417KB979909

[0]PC環境ですが、メモリは384MB以上搭載しておいた方が良さそうです。
[2]REG.EXEは、Windows 2000の導入CD内\SUPPORT\TOOLS\SUPPORT.CABにあります。
他のバージョンから持ってきたREG.EXEだと、はねられました。
[3]MSXSL.EXEと[4]STREAMS.ZIPは、
WSUS Update Offline 6.6.5と同時期のものを用意します。
うちが使ったのは、[3]が1.1.0.1、[4]が1.56でした。
[5]WSUSSCN2.CABは、2020年7月14日署名のものを使いました。
[8]ROOTSUPD.EXEは、2012年11月3日署名のものを使いました(版数は37,0,2195,0)。
URLや更新ファイル群は、archive.orgを使って、頑張って探します。
あえて正規のURLを掲載したのは、
いじめでも何でもなく、
こういうことする人って、これも楽しみのうちですよねってことで…
面倒くさい性格ですみません(汗

・手順
(0).NET framework関連を導入するのであれば、
[13][14]を導入しておきます。
2.0のほうは、システム要件がSP4以上ですので、
SP4、ほかにWindows Installer 3.1、KB835732導入後の作業となります。

(1)[6]Service Pack 4の導入
(2)WSUS Offline Updateを任意のディレクトリ(以降[WOU]とする)に展開しておきます。
(3)[2]REG.EXEを、%Systemroot%\system32に複写します。
(4)[3]MSXSL.EXEを、[WOU]\binに複写します。
(5)[4]STREAMS.ZIPを展開し、STREAMS.EXEを[WOU]\binに複写します。
(6)[WOU]\staticにあるStaticDownloadLinks-ie6-jpn.txtに記述されているInternet Explorer 6 SP1のダウンロードURLを、有効なURLに書き換えます。
(7)[7]更新プログラム ロールアップ 1(KB891861)の導入
これで、WSUS Offline Updateで更新プログラムがダウンロードできるようになります。
(8)[WOU]\UpdateGenerator.exeで、更新ファイルをダウンロードします。
Service Pack 4は導入済みですので、レ点を外しておきます。
(9)ダウンロード完了後、
[9]DirectX 9.0cを[WOU]\client\win\glb
[13-2][14-2]を[WOU]\client\win\jpn
[10]WMP9と[11]Windows Installer 3.1を[WOU]\client\w2k\glb
[6]Windows 2000 Service Pack 4を[WOU]\client\w2k\jpn
に複写、
[WOU]\client\wsusにある既存のWSUSSCN2.CABを、[5]で用意したWSUSSCN2.CABで置換します。
これで、オフライン更新プログラムが完成しました。
(10)[8]ルート証明書の更新導入。
(11)[WOU]\client\UpdateInstaller.exeを使って、更新を導入します。
Automatic reboot and recallにチェックをしてから、Startします。


ここからは、なんがい余談です:

 

 昨年9月はじめに、友人から
Windows XPが更新できなくなった
Windows Updateのサイトが使えず、自動更新もできない」
という連絡を受け、確認したところ、
Windows 2000Windows XPも、同じエラーで更新ができなくなっていました。
WSUS Offline Updateでなんとかならんかと思い、
Windows XPでXP向けに作ってみたら、
作れたものの、
更新がありませんの表示が出て、まったく更新ができませんでした。
このときは、ここでもう折れて、
「PCを初期化しなけりゃいいんやろ」
ということで、片づけておいたのでした。
ただ、趣味で古いPCをよく買っているため、
そのうち嫌でもやらにゃならんだろうとは思っていたのですが、
それが先日だったわけです。

 WSUS Offline UpdateでWindows 2000の更新がダウンロードできるのは、6.6.5までです。
とりあえず素でやってみたら、1回目のエラー。

ERROR: File C:\WINNT\system32\reg.exe not found.

これは、そのあとに続く説明で格納場所も分かり、解決。

次のエラーは、MSXSL.EXEとSTREAMS.ZIPがダウンロードできないというエラーでした。
入手できる新しめのものだと、この後の工程でエラーが出たため、
WSUS Offline Updateの版数を鑑み、
同時期のファイルをarchive.orgからダウンロードして解決。

お次は、IE6SP1がダウンロードできないというエラーでした。
タイムスタンプを参照してダウンロードするせいで、
ディレクトリに用意しときゃいいってもんでもないらしく、
とても面倒ではあるが、いちいちarchive.orgからURLを引っ張ってきました。

*ここまで読んでくれたお礼(2021年6月22日確認)

http://web.archive.org/web/20150714020843if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/BRANDING.CAB
http://web.archive.org/web/20130327001357if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/CRLUPD.CAB
http://web.archive.org/web/20140831000813if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/ie6setup.exe
http://web.archive.org/web/20130327030338if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/IEEXINST.CAB
http://web.archive.org/web/20150714020823if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/IEW2K_1.CAB
http://web.archive.org/web/20150714020848if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/IEW2K_2.CAB
http://web.archive.org/web/20150714020856if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/IEW2K_3.CAB
http://web.archive.org/web/20150714020922if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/IEW2K_4.CAB
http://web.archive.org/web/20150714020820if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/MAILNEWS.CAB
http://web.archive.org/web/20130327072516if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/MPLAY2U.CAB
http://web.archive.org/web/20150714020738if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/OEEXCEP.CAB
http://web.archive.org/web/20130327055743if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/README.CAB
http://web.archive.org/web/20150714020800if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/SCRIPTJP.CAB
http://web.archive.org/web/20150714020912if_/http://download.microsoft.com/download/ie6sp1/finrel/6_sp1/W98NT42KMeXP/JA/WAB.CAB



次のエラーはこちら。

Could not locate a recognized version of MSXML on the machine.
Please re-install MSXML version 2.6 or later.

ERROR: Download failure for win glb.

MSXMLの版数が古いらしい。
これは、たしか3.0がSP4向け更新ロールアップに含まれていたはずと、
導入して解決。
これで、ちゃんとほぼすべての更新がダウンロードできるようになりました。
足りないファイルは、ログを辿って手動でかき集めました。
といっても、数点だけですのでかなり楽。
ダウンロードですが、
メモリを128MB積んだPCでやったら、スワップが足りないので…と出てきました。

メモリくい
メモリ320MB積んだPCだと結構余裕がありましたが、メモリ使用量は370MBほどで、
かなり消費していました。

 で。
更新の導入に失敗しました。

No Missing updates found.

更新されていないものはないというのです。
そんなはずはないだろう、入れたばっかしやっちゅうに。
キーワードで検索すると、
フォーラムに、WSUSSCN2.CABがどうたらと書いてあるのを見つけました。
更新ファイルダウンロードのときに一緒にダウンロードしていた、900MB弱のでかいキャビネットファイルです。
一体なんぞやと思って調べると、こういうものだそうな。
オフライン環境でも更新の有無が分かるという代物。
ここの「注意」というところの内容、
SHA-1の廃止は、
勤務先の持ち込みPCサポートでも、
サポート終了直前のWindows7の更新関連で嫌というほど引っかかったやつである。
そのリンク先が…な、内容でした

2020 年 8 月 3 日
Microsoft ダウンロード センターから、セキュリティで保護されたハッシュ アルゴリズム 1 (SHA-1) の Windows に署名されたコンテンツが廃止されました。

SHA-1で署名されたコンテンツの廃止時期、
Windows 2000が更新できなくなった時期とほぼ合致してますやん。
archive.orgで2020年8月以降のWSUSSCN2.CABの情報を見ると、
たしかにSHA-256しか署名がありません。
2020年7月のファイルは、SHA-1とSHA-256のデュアル署名でした。

 これやろ、と、
同じページにあったWindows Scriptで更新を洗い出そうとしたところ…

wsus_scan.vbs(3, 1) 証明書チェーンの内部エラーが発生しました。

とかいうへんちくりんなエラーが返ってきました。
証明書と言えば、
いつもWindows 2000をオンラインで更新できるようにするために導入している、
ルート証明書の更新を当てていなかったなぁと思い、
更新を導入したところ、
ちゃんと未更新のファイル一覧が出力されました。
こんな感じ:

List of applicable items on the machine when using wssuscan.cab:

1> Q329115 : セキュリティ問題の修正プログラム
2> Internet Explorer 6 Service Pack 1 用の累積的なセキュリティ更新プログラム (KB867282)
3> Windows 2000 用セキュリティ更新プログラム (KB901214)
4> Windows 2000 用セキュリティ更新プログラム (KB893756)
5> Windows 2000 用セキュリティ更新プログラム (KB899587)
6> Windows 2000 用セキュリティ更新プログラム (KB896423)
7> Windows 2000 用セキュリティ更新プログラム (KB905414)
8> Windows 2000 用セキュリティ更新プログラム (KB899589)
9> Windows 2000 用セキュリティ更新プログラム (KB901017)
10> Windows 2000 用セキュリティ更新プログラム (KB896422)
11> Windows 2000 用セキュリティ更新プログラム (KB896358)
12> Internet Explorer 6 Service Pack 1 用の累積的なセキュリティ更新プログラム (KB896688)
13> Windows 2000 用セキュリティ更新プログラム (KB900725)
14> Windows 2000 用セキュリティ問題の修正プログラム (KB905749)
15> Windows 2000Internet Explorer 6 Service Pack 1 のセキュリティ更新プログラム (KB905495)
16> Windows Media Player プラグイン用のセキュリティ更新プログラム (KB911564)
17> Windows 2000 用セキュリティ更新プログラム (KB908531)
18> Windows 2000 用セキュリティ更新プログラム (KB913580)
19> Windows 2000 用セキュリティ更新プログラム (KB914388)
20> Windows 2000 用セキュリティ更新プログラム (KB917008)
21> Windows 2000 用セキュリティ更新プログラム (KB920670)
22> Windows 2000 用セキュリティ更新プログラム (KB920683)
23> Windows 2000 用セキュリティ更新プログラム (KB921398)
24> Windows 2000 用セキュリティ更新プログラム (KB923191)
25> Windows 2000 用セキュリティ更新プログラム (KB923980)
26> Windows 2000 用セキュリティ更新プログラム (KB924270)
27> Windows 2000 用セキュリティ更新プログラム (KB928843)
28> Windows 2000 用セキュリティ更新プログラム (KB924667)
29> Windows 2000 用セキュリティ更新プログラム (KB918118)
30> Windows 2000 用セキュリティ更新プログラム (KB926436)
31> Windows 2000 用セキュリティ更新プログラム (KB925902)
32> Windows Server 2000 用セキュリティ更新プログラム (KB920213)
33> Microsoft Data Access Components 2.5 Service Pack 3 用セキュリティ更新プログラム (KB927779)
34> Windows Media Player 6.4 用セキュリティ更新プログラム (KB925398)
35> Windows 2000 用セキュリティ更新プログラム (KB926122)
36> Internet Explorer 6 Service Pack 1 用の累積的なセキュリティ更新プログラム (KB937143)
37> Windows 2000 用セキュリティ更新プログラム (KB938827)
38> Windows 2000 Service Pack 4 用の更新プログラム ロールアップ 1 (KB891861)
39> Windows 2000 用セキュリティ更新プログラム (KB923810)
40> Windows 2000 用セキュリティ更新プログラム (KB941569)
41> Windows 2000 用セキュリティ更新プログラム (KB937894)
42> Windows 2000 用セキュリティ更新プログラム (KB943485)
43> Windows 2000 用セキュリティ更新プログラム (KB943055)
44> Windows 2000 用セキュリティ更新プログラム (KB950749)
45> Windows 2000 用セキュリティ更新プログラム (KB950974)
46> Windows 2000 用セキュリティ更新プログラム (KB952954)
47> Windows 2000 用セキュリティ更新プログラム (KB958644)
48> Windows 2000 用セキュリティ更新プログラム (KB955069)
49> Windows 2000 用セキュリティ更新プログラム (KB954600)
50> Windows 2000 用セキュリティ更新プログラム (KB956802)
51> Windows 2000 用セキュリティ更新プログラム (KB952069)
52> Windows 2000 用セキュリティ更新プログラム (KB960225)
53> Windows 2000 用セキュリティ更新プログラム (KB960803)
54> Windows 2000P 用セキュリティ更新プログラム (KB959426)
55> Windows 2000 用セキュリティ更新プログラム (KB923561)
56> Windows 2000 用セキュリティ更新プログラム (KB952004)
57> Windows 2000 用セキュリティ更新プログラム (KB961501)
58> Windows 2000P 用セキュリティ更新プログラム (KB970238)
59> Windows 2000Windows Media Player 9 のセキュリティ更新プログラム (KB973540)
60> Windows 2000 用セキュリティ更新プログラム (KB973869)
61> Windows 2000 用セキュリティ更新プログラム (KB958470)
62> Windows 2000 用セキュリティ更新プログラム (KB973507)
63> Windows 2000 用セキュリティ更新プログラム (KB960859)
64> Windows 2000 用セキュリティ更新プログラム (KB956844)
65> Windows 2000Windows Media フォーマット ランタイム 9 のセキュリティ更新プログラム (KB968816)
66> Windows 2000Windows Media フォーマット ランタイム 9 のセキュリティ更新プログラム (KB954155)
67> Windows 2000 用セキュリティ更新プログラム (KB974112)
68> Windows 2000Internet Explorer 6 のセキュリティ更新プログラム (KB958869)
69> Windows 2000 用セキュリティ更新プログラム (KB969059)
70> Windows 2000 用セキュリティ更新プログラム (KB974571)
71> Microsoft .NET Framework 1.1 Service Pack 1 用セキュリティ更新プログラム、Windows 2000 向け (KB971108)
72> Microsoft .NET Framework 2.0 Service Pack 2 用セキュリティ更新プログラム、Windows 2000 向け (KB971111)
73> Windows 2000 用セキュリティ更新プログラム (KB975542)
74> Windows 2000 用セキュリティ更新プログラム (KB951748)
75> Windows 2000 用セキュリティ更新プログラム (KB974318)
76> Windows 2000 用セキュリティ更新プログラム (KB974392)
77> Windows 2000 用セキュリティ更新プログラム (KB973904)
78> Windows 2000 用セキュリティ更新プログラム (KB972270)
79> Windows 2000 用セキュリティ更新プログラム (KB978037)
80> Windows 2000 用セキュリティ更新プログラム (KB977914)
81> DirectX 9 for Windows 2000 用 セキュリティ更新プログラム (KB975560)
82> Windows 2000 用セキュリティ更新プログラム (KB978706)
83> Windows 2000 用セキュリティ更新プログラム (KB971468)
84> Windows 2000 用セキュリティ更新プログラム (KB979309)
85> Windows 2000 用セキュリティ更新プログラム (KB979683)
86> Windows 2000 用セキュリティ更新プログラム (KB981349)
87> Windows Media Player 9 用セキュリティ更新プログラム、Windows 2000 向け (KB979402)
88> Windows 2000 用セキュリティ更新プログラム (KB978601)
89> Microsoft .NET Framework 2.0 Service Pack 2 用セキュリティ更新プログラム、Windows 2000Windows Server 2003 および Windows XP 向け (KB974417)
90> Windows 2000Outlook Express 6.0 のセキュリティ更新プログラム (KB978542)
91> Windows 2000 用セキュリティ更新プログラム (KB980218)
92> Windows 2000ActiveX Killbits に対する累積的なセキュリティ更新プログラム (KB980195)
93> Windows 2000 用セキュリティ更新プログラム (KB979482)
94> DirectX 9 for Windows 2000 用 セキュリティ更新プログラム (KB975562)
95> Windows 2000 用セキュリティ更新プログラム (KB979559)
96> Windows 2000 用セキュリティ更新プログラム (KB977816)
97> Microsoft .NET Framework 1.1 SP1 用セキュリティ更新プログラム、Windows 2000 および Windows XP 向け (KB979906)
98> Microsoft .NET Framework 3.5 SP1 および .NET Framework 2.0 SP2 用セキュリティ更新プログラム、Windows 2000Windows Server 2003 x86 および Windows XP x86 向け (KB979909)


 さあ、これでできるやろ!
と思ったのですが、
相変わらず「No Missing updates found.」のまま…
実は、このパソコンの前に、
いつもの自動更新ができる環境を作るやりかたで進めていったPCで成功していたので、
後出しで更新を適用してみたのですが、時間食うだけでだめでした。
面倒になってきたので、
これまた別のPCを使って、

バックグラウンド インテリジェント転送サービス (BITS) 2.0 および WinHTTP 5.1(KB842773)
Windows Installer 3.1
KB927891
Windows Update エージェントのバージョン 7.4.7600.226
Windows 2000 SP4 用の更新プログラム ロールアップ 1(KB891861)
ルート証明書の更新(手持ちの版数は8,0,2195,0)

導入後にWSUS Offline Updateを作って更新したら、
やはりしっかり更新できました。
…釈然としなくて、
もう一度失敗したパソコンにWindows 2000を導入して、
何も更新を入れずに進めていったところ、
1回目の更新は当たったものの、
.NET関連の更新も自動でできんかと思って、
ここかなと思ったディレクトリに突っ込んでの2回目の更新で、「No Missing updates found.」。
Windows Scriptでは、未更新一覧出るのに…

 そして、
そのパソコン3度目のWindows 2000導入。
今度はいつも通りにやった後にやってみたものの、やはりだめ。
なんでやねん…なにが違うんや…
と思いながら、WSUSSCN2.CABの時期を変えたりしながらよく見てみると、
失敗後に、システムドライブの残容量が想定よりもかなり逼迫していることがありました。
そこそこ空けておったはずなのに…と思って、更新に係るディレクトリを見ていくと、
%Systemroot%\SoftwareDistribution\ScanFile内に、WSUSSCN2.CABが展開されているのを確認できました。
…完全に盲点でした、容量不足です(
8GBの壁を擁するPC(懐かしいでしょう)に、
Windows98用に1.2GB、WIndows 2000用に5GB、
残り1.65Gを物置用に確保して、区画を切っていたのですが…
システムドライブの空きが2GB弱では、いかんかったようでした。
そういや、WSUS Offline Update、
更新中に反応しなくなったときに、CSCIPT.EXE切って終わらせても、
「No Missing updates found.」って出てたな…

やっと進んだ更新。 .NET関連も自動で入れられることが確認できた
Windows 2000導入後に8GBの壁もなにもないので、
区画を8GB越えのところに作ってから、既存の拡張区画を消して、
DISKPARTで、当該基本区画を壁まで拡張したところ、
残りの更新も、すんなり導入できました。


 そして、記事のはじめに書いたやりかたに落ち着いたのでした。
作ったやつは、書庫作って後生大事に保管しておこう…