ブログアーカイブ

コンポーネントストアの修復


以下の方法は Microsoft が推奨する方法ではありませんのでご注意ください。必ずバックアップ、復元ポイントを作成してから行ってください。

Windows 8.1 で コンポーネントストアを正しく修復できない場合に次の手順を試してみてください。

  • regedit.exe を起動して HKEY_LOCAL_MACHINE を選択します。
  • 「ハイブの読み込み」で %SystemRoot%\System32\config\components を読み込みます。キー名を COMPONENTS にします。
  • HKEY_LOCAL_MACHINE\COMPONENTS\DerivedData\Components のサブキーの CF, CTS, DV の値を削除します。
  • f! … の値を 0x00000003 から 0x00000001 に変更します。
  • HKEY_LOCAL_MACHINE\COMPONENTS を選択して、「ハイブのアンロード」を行います。

コマンドプロンプト(管理者)で DISM /Online /Cleanup-Image /ScanHealth を実行します。

DISM /Online /Cleanup-Image /RestoreHealth を実行します。

  • %SystemRoot%\Cbstemp にフォルダーとファイルが作成されます。[20%]
  • %SystemRoot\SoftwareDistribution\Download にフォルダーとファイルが作成されます(KB)。[40%]
  • %SystemRoot%\WinSxS\Temp\InFlight にフォルダーとファイルが作成されます(KB)。[80%]
  • %SystemRoot%\WinSxS\ フォルダーのファイルが置き換わります。

Windows RE のコマンドプロンプトで DISM /Image:C:\ /Cleanup-Image /RestoreHealth /Source:C:\Windows を実行すると回復できる確率が上がります。

WinSxS\Manifests


Windows 8.1 x64 の %SystemRoot%WinSxs\Manifests の Manifest ファイルは msu に含まれるファイルとは違い、ファイルサイズが異なります。自動でインストールした場合、express となるようです。

msu に含まれる Manifest ファイルは WordPad で確認できますが、%SystemRoot%WinSxs\Manifests の Manifest ファイルは 先頭は “DCM PA30” で、圧縮されています。


expand または wusa で msu を展開できます。(name).msu を (folder)に展開する方法です。

expand /f:* (name).msu (folder)

wusa (name).msu /extract:(folder)

さらに (folder)のcab ファイルを展開します。


Windows8.1-KB2932046-x64.msu に mui ファイルは存在しますが、crypt32.dll (6.3.9600.17031) が含まれていません。

amd64_microsoft-windows-capi2_31bf3856ad364e35… に対応する WinSxS のサブフォルダーがありません。capi2.dll も存在しません。

Windows Update とレジストリ


Vista で Windows Update を手動で行う

msuファイルを選択して更新プログラムをインストールできない場合にファイルを展開してインストールする一例です。詳しくはパッケージ マネージャのコマンドラインオプションを参照してください。

Windows Vista Packages


  1. Microsoft ダウンロードセンターから 更新プログラム msu ファイルをダウンロードします。
  2. expand /f:* Windows6.0-KBxxxxxx.xxx.msu [outdir] を実行して任意のフォルダーに展開します。[outdir] は事前に作成しておく必要があります。
  3. [outdir] フォルダーのWindows6.0-KBxxxxxx.xxx.cab を展開します。expand /f:* Windows6.0-KBxxxxxx.xxx.msu [outdir2]
  4. cd [outdir2]
  5. 管理者権限を使用してコマンドプロンプトに start /w pkgmgr /ip /m:update.mum を入力して インストールを行います。%SystemRoot%\servicing\Packagesにcatファイルとmumファイル, %systemroot%\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE} にcatファイルがコピーされているか確認します。

ファイル名に _bf が含まれるものは LDR区分となります。また _server が含まれるものは Windows Server で必要となると考えられます。


レジストリについて

Windows Update のファイルの情報は次のレジストリに書き込まれます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\ComponentDetect に更新されるシステムファイルを情報が書き込まれます。複数の更新プログラムに同じファイルの更新が含まれることもあります。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages, %systemroot%\servicing\Packages と %systemroot%\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE} にcatファイルとmumファイルの情報を反映しています。

winsxs


Windows Vista および Windows Server 2008 で、Service Pack および修正プログラムの適用後にブート パーティションの使用領域が増加する
http://support.microsoft.com/kb/973016/ja

Windows Vista Service Pack 2 展開ガイド
http://technet.microsoft.com/ja-jp/library/dd335037(WS.10).aspx

Windows Component Clean Tool (COMPCLN)

アーカイブされたファイルを削除します。ディスク容量が増えますが、Service Packのアンインストールができなくなります。
%systemroot%\winsxs\ フォルダーのファイルを直接削除してはいけません。