Tatsu still writes something... Fourth season

これからも私はなにかをしてなにかを書く

ぼろぼろのVistaを直してみた

Windows 8が出たら拙作の動作確認のため、メインマシンにWindows 8を入れていじくり回す

そこで、非常時のためにWindows XPVistaを入れたサブマシンを使える状態にすることにした。Windows XPは必ず起動して、Paragon Backup & Recoveryでシステムイメージをリストアできる環境とし、Vistaは常用するための環境という役割を与えることにした。

ところがこのVista

  • .NET Framework 4.0のパッチをインストールできない(Sharp Developのため、安全な.NET Framework 4.0が必要だ。)
  • 古いSilverlightが消せない(必要になるとは思わないけど
  • Visual C++ 2005 Expressが消せない(Visual Studio 2008 Standardか、Visual C++ 2008 Expressを入れるのでVisual C++ 2005 Expressはいらない!)
  • 前に使ったアンインストールしたソフトウェアがプログラムと機能コントロールパネルに残っていて消せない(なんか分からんけど気色悪い!)

という障害があった。この状態では今後使い続けるのは何かと厳しいので対処を行うことにした。

せっかくなのでどのような対処をしたかメモ代わりに書いていく。
ソフトウェアのメッセージはうろ覚えなので、適宜読み替えること。
後、まねするときは最低レジストリのバックアップ、できればイメージバックアップを採取しておくこと。

.NET Framework 4.0のパッチをインストールできない

まずは、.NET Framework 4.0のパッチをインストールできない件。

これは、.NET Framework 4.0のインストーラを起動し、.NET Framework 4.0のインストールまたは修復を選んでインストーラの指示に従うことで解決した。

最初はFix it Portableを使って.NET Framework 4.0をアンインストールしてから再インストールしようと思ったが、これを行うと.NET Framework 4.0がインストールできない状態になった。

古いSilverlightが消せない

次に、古いSilverlightが消せない件。

これについては、まずHow to clean a corrupted Silverlight installation and then reinstall Silverlightに従って、手動でSilverlightの削除を行った。

すると、Silverlightがプログラムと機能コントロールパネルに残っていて消せない状態になったので、Revo Uninstallerを使ってSilverlightを削除した。削除の際、アンインストーラはすでに存在しないのでアンインストーラによる削除は失敗するが、その後、Revo Uninstallerが見つけたSilverlightの文言またはSilverlightを含むパス名が書かれた値が存在するレジストリキーを消しまくったところ、プログラムと機能コントロールパネルから消えてくれた。

Visual C++ 2005 Expressが消せない

Visual Studio 2005 を削除する方法に従って、手動でVisual C++ 2005 Expressを削除したところ、Visual C++ 2005 Expressがプログラムと機能コントロールパネルに残っていて消せない状態になるわ、Windows UpdateにVisual C++ 2005 Express関連のパッチが出るわと、実に厄介な状況になった。

そこで、レジストリエディタで"2005 Express"を探すと、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\(任意の文字列)\Products
のキーの下の16進数の羅列のキー名の下にInstallPropertiesキーのDisplayNameに"2005 Express"を含む値があったので、これもProductsの下のキー名が16進数の羅列になっているキーを選択して削除した。
これで、プログラムと機能コントロールパネルからVisual C++ 2005 Expressは消え、Windows UpdateにVisual C++ 2005 Express関連のパッチが出ることもなくなった。

後は、大量のファイルタイプ定義が残るのでCCleanerのレジストリの問題点スキャンでレジストリをチェックして、レジストリを削除した。

前に使ったアンインストールしたソフトウェアがプログラムと機能コントロールパネルに残っていて消せない

これもインストール情報の残骸だったので、Visual C++ 2005 Expressと同様に、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\(任意の文字列)\Products
の下のソフトウェア名を含むレジストリを削除することでプログラムと機能コントロールパネルからソフト名が無事消えた。

それにしても、プログラムの手動削除を行うのにWindows XPだと
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
の下のキーを消せばプログラムの追加と削除から名前が消えてくれるのだが、Vista(とそれ以降も?)では
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer
の下もチェックしないといけないので何とも面倒である。と言うか、ここまでするなら再インストールのほうが早いのかもしれないなぁ。

最後に

何かあったときにまっとうな状態に戻せるようにするため、トラブルが解決した時点でイメージバックアップを採取しておいた。
後は、Vistaに生活・開発で使うソフトを入れていけば安心してメインマシンもいじれるというものである。