1337080944 Windows Vista Service Pack 1 がインストールできません。


ロジクールのマウスを購入しました。
しかし、デバイスドライバがインストールできません。
カスタマーサポートの方もお手上げ・・・。

それだけでなく、
Googleの日本語入力ソフト、
WindowsでLinuxの機能を使うCygwinなどなど・・・
が正常にインストールできません。

原因はWindows Vista Service Pack 1を導入していないからです。

しかし、更新プログラムの自動インストールは必ず失敗します。
マイクロソフトの公式サイトから手動でダウンロードすればいいと聞いたが、これも失敗・・・。

インストールが失敗した時に表示されるエラー画面が以下です。
------------------------------------------------------------
インストールは成功しませんでした
Service Pack のインストール中に内部エラーが発生しました
0x800B0100
------------------------------------------------------------

その解決方法が以下です。
「Windows Vista および Windows Server 2008 Service Pack
のインストールの問題のトラブルシューティング方法」
http://support.microsoft.com/kb/947366

・・・以下、補足で続きます。

回答の条件
  • 1人20回まで
  • 登録:
  • 終了:2012/05/22 01:04:30
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:cx20 No.2

回答回数607ベストアンサー獲得回数108

ポイント500pt

問題が解決せず、残念ですが、現時点の内容をまとめたいと思います。

今回、表示されているエラーコードは以下のようなものでした。

コードエラー説明(日本語)説明(英語)
0x8007000DERROR_INVALID_DATAデータが無効です。The data is invalid.
0x800B0100TRUST_E_NOSIGNATUREサブジェクトに署名がありませんでした。No signature was present in the subject.
0x800B0001TRUST_E_PROVIDER_UNKNOWN信頼プロバイダが不明です。The specified trust provider is not known on this system.



0x8007000D は、ファイルまたはレジストリの内容に問題があった場合に API が返すエラーのようです。
レジストリの問題であった場合は解決していない可能性がありますが、ファイルの問題であれば、

■ Windows Update/Microsoft Updateのトラブルを解消する(SoftwareDistributionフォルダを修復する方法) - @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/944rcvsoftdist/rcvsoftdist.html

にて、改善しているのではと思われます。



0x800B0100 は、セキュリティ関連のコンポーネントの登録状態に問題がある場合に発生するようです。

■ エラー コード 0x800B0100 が、Windows Update または Microsoft Update を使用して更新プログラムをインストールするときに表示される
http://support.microsoft.com/kb/956702/ja

Windows 2000、Windows XP、または Windows Server 2003 であれば、

ファイル名説明
Softpub.dllSoftpub Forwarder DLL
Wintrust.dllMicrosoft Trust Verification APIs
Initpki.dllMicrosoft Trust Installation and Setup
Mssip32.dllMSSIP32 Forwarder DLL

を再登録することで改善するようですが、
Windows Vista 以降では、「システム更新準備ツール」を使うことが推奨されているようです。

■ Windows Vista、Windows Server 2008、Windows 7、および Windows Server 2008 R2 のシステム更新準備ツールについて
http://support.microsoft.com/kb/947821/ja

■ ダウンロード詳細 Windows Vista 用のシステム更新準備ツール (KB947821) [2012 年 2 月]
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=b4d90b06-c27d-4483-bc1f-04d43fa7b293

Windows6.0-KB947821-v19-x86.msu

このツールはバージョンが頻繁に上がっており、v19 が最新版のようです。
また、ツールの実行時に問題があった場合は、以下のログファイルに内容が記録されるようです。

  • %SYSTEMROOT%\Logs\CBS\CheckSUR.log
  • %SYSTEMROOT%\Logs\CBS\CheckSUR.persist.log



0x800B0001 は、

  1. Windows 更新プログラムが必要とするファイル ("カタログ ストア" と呼ばれる) が壊れている
  2. Windows 更新プログラムが暗号化されたサービス プロバイダーを判別できない

の場合に発生するようです。

■ Windows Update エラー 800B0001
http://windows.microsoft.com/ja-JP/windows7/Windows-Update-error-800B0001

  • Windows 更新プログラムが必要とするファイル ("カタログ ストア" と呼ばれる) が壊れている

が原因であれば、

■ プログラムや更新プログラムをインストールできない
http://support.microsoft.com/kb/822798/ja

方法 2: Catroot2 フォルダーの名前を変更する

にて改善するかと思います。

  • Windows 更新プログラムが暗号化されたサービス プロバイダーを判別できない

が原因であれば、

■ プログラムや更新プログラムをインストールできない
http://support.microsoft.com/kb/822798/ja

方法 3: Cryptographic Services に関連付けられている DLL ファイルを再登録する

が対応方法となるかと思いますが、Windows Vista では KB の内容に誤り(再登録するコンポーネントのファイル名に誤り)がある為、完全には復旧しないようです。

ファイル名存在の有無
softpub.dll存在する
wintrust.dll存在する
initpki.dllVista 以降では存在しない
dssenh.dll存在する
rsaenh.dll存在する
gpkcsp.dllVista 以降では存在しない
sccbase.dllVista 以降では存在しない
slbcsp.dllVista 以降では存在しない
mssip32.dll存在する
cryptdlg.dll存在する

このような差異が発生しているのは、Windows Vista 以降で暗号化 API に仕様変更が入っている為と思われます。
(暗号化 API が「Crypto API」→「CNG(Crypto Next Generation)」に変更されている為)

■ Windows Vista の CNG API を使用して暗号化を行う
http://msdn.microsoft.com/ja-jp/magazine/cc163389.aspx



長くなりましたが、結論として、現時点の問題としては、Windows Vista の新しい暗号化 API が正しく機能していないことが原因と考えられます。
以下は、暗号化 API が使用する暗号化プロバイダ(CNG Provider)を列挙するサンプルプログラムです。
.NET Framework がインストールされている環境であれば、コンパイルして確認できるかと思います。
想定する暗号化プロバイダが表示されるか確認してみてください。

■ Using the Cryptography Configuration Features of CNG (Windows)
http://msdn.microsoft.com/ja-jp/library/bb204780.aspx


// File : EnumCngProvider.cs
// Compile : 
//    C:\> SET PATH=C:\Windows\Microsoft.NET\Framework\v2.0.50727;%PATH% [Enter]
//    C:\> csc EnumCngProvider.cs [Enter]
// Usage : EnumCngProvider.exe [Enter]
using System;
using System.Collections.Generic;
using System.Data;
using System.Runtime.InteropServices;

class EnumCngProvider
{
    [DllImport("Bcrypt.dll", SetLastError = true)]
    public static extern uint BCryptEnumRegisteredProviders(
        ref int pcbBuffer,
        ref IntPtr ppBuffer
    );
    [DllImport("Bcrypt.dll", SetLastError = true)]
    public static extern uint BCryptFreeBuffer(
        IntPtr pvBuffer
    );
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    public class CRYPT_PROVIDERS
    {
        public int cProviders;
        public IntPtr rgpszProviders;
    }

    public static List<string> GetCngProviders()
    {
        int cbBuffer = 0;
        IntPtr pBuffer = IntPtr.Zero;
        List<string> providers;
        EnumCngProvider.CRYPT_PROVIDERS cngProviders = new EnumCngProvider.CRYPT_PROVIDERS();

        uint status = EnumCngProvider.BCryptEnumRegisteredProviders(ref cbBuffer, ref pBuffer);
        if ( status == 0 )
        {
            if (pBuffer != IntPtr.Zero)
            {
                providers = new List<string>();
                Marshal.PtrToStructure(pBuffer, cngProviders);
                IntPtr[] rgpszProviders = new IntPtr[cngProviders.cProviders];
                Marshal.Copy(cngProviders.rgpszProviders, rgpszProviders, 0, cngProviders.cProviders);
                for (int i = 0; i < cngProviders.cProviders; i++)
                {
                    providers.Add(Marshal.PtrToStringUni(rgpszProviders[i]));
                }
                EnumCngProvider.BCryptFreeBuffer(pBuffer);
                return providers;
            }
        }
        
        return null;
    } 

    static void Main()
    {
        List<string> stringList = GetCngProviders();
        foreach (string s in stringList) {
            Console.WriteLine(s);
        }
    }
}

  • 実行結果
暗号化プロバイダ名ファイル名
Microsoft Primitive Providerbcrypt.dll
Microsoft Smart Card Key Storage Providerscksp.dll
Microsoft Software Key Storage Providerncrypt.dll
Microsoft SSL Protocol Providerncrypt.dll

上記の暗号化プロバイダが一覧に表示されない場合は、暗号化プロバイダが正しく登録されていない可能性があります。
一覧に表示するが機能しないというケースであれば、DLL の依存関係に問題がある可能性があります。
その場合は、以下のツールにて、足りない DLL が無いか調査することが可能です。

■ Dependency Walker (depends.exe) Home Page
http://www.dependencywalker.com/

他10件のコメントを見る
id:cx20

???
かなり勘違いされているようですが、私は、Google とも Microsoft とも関係ないですよ。
ましてや本なんて出してませんし(苦笑)
とりあえず、連絡は Twitter にてお願いします。ID は Hatena ID と同じです。

2012/05/22 06:28:11
id:kireifish

そう言えば、いつも07:40~50頃投稿されてますね。
こちらはその時間帯でも大丈夫です。

2012/05/22 06:38:42

その他の回答1件)

id:jun0531h No.1

回答回数20ベストアンサー獲得回数0

セキュリティプログラムをすべてアンインストールして
コンピューターを再起動してから Service Pack を再インストールしてみてはどうでしょう?

id:kireifish

やりました。でも、ダメでした…。

2012/05/18 22:30:46
id:cx20 No.2

回答回数607ベストアンサー獲得回数108ここでベストアンサー

ポイント500pt

問題が解決せず、残念ですが、現時点の内容をまとめたいと思います。

今回、表示されているエラーコードは以下のようなものでした。

コードエラー説明(日本語)説明(英語)
0x8007000DERROR_INVALID_DATAデータが無効です。The data is invalid.
0x800B0100TRUST_E_NOSIGNATUREサブジェクトに署名がありませんでした。No signature was present in the subject.
0x800B0001TRUST_E_PROVIDER_UNKNOWN信頼プロバイダが不明です。The specified trust provider is not known on this system.



0x8007000D は、ファイルまたはレジストリの内容に問題があった場合に API が返すエラーのようです。
レジストリの問題であった場合は解決していない可能性がありますが、ファイルの問題であれば、

■ Windows Update/Microsoft Updateのトラブルを解消する(SoftwareDistributionフォルダを修復する方法) - @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/944rcvsoftdist/rcvsoftdist.html

にて、改善しているのではと思われます。



0x800B0100 は、セキュリティ関連のコンポーネントの登録状態に問題がある場合に発生するようです。

■ エラー コード 0x800B0100 が、Windows Update または Microsoft Update を使用して更新プログラムをインストールするときに表示される
http://support.microsoft.com/kb/956702/ja

Windows 2000、Windows XP、または Windows Server 2003 であれば、

ファイル名説明
Softpub.dllSoftpub Forwarder DLL
Wintrust.dllMicrosoft Trust Verification APIs
Initpki.dllMicrosoft Trust Installation and Setup
Mssip32.dllMSSIP32 Forwarder DLL

を再登録することで改善するようですが、
Windows Vista 以降では、「システム更新準備ツール」を使うことが推奨されているようです。

■ Windows Vista、Windows Server 2008、Windows 7、および Windows Server 2008 R2 のシステム更新準備ツールについて
http://support.microsoft.com/kb/947821/ja

■ ダウンロード詳細 Windows Vista 用のシステム更新準備ツール (KB947821) [2012 年 2 月]
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=b4d90b06-c27d-4483-bc1f-04d43fa7b293

Windows6.0-KB947821-v19-x86.msu

このツールはバージョンが頻繁に上がっており、v19 が最新版のようです。
また、ツールの実行時に問題があった場合は、以下のログファイルに内容が記録されるようです。

  • %SYSTEMROOT%\Logs\CBS\CheckSUR.log
  • %SYSTEMROOT%\Logs\CBS\CheckSUR.persist.log



0x800B0001 は、

  1. Windows 更新プログラムが必要とするファイル ("カタログ ストア" と呼ばれる) が壊れている
  2. Windows 更新プログラムが暗号化されたサービス プロバイダーを判別できない

の場合に発生するようです。

■ Windows Update エラー 800B0001
http://windows.microsoft.com/ja-JP/windows7/Windows-Update-error-800B0001

  • Windows 更新プログラムが必要とするファイル ("カタログ ストア" と呼ばれる) が壊れている

が原因であれば、

■ プログラムや更新プログラムをインストールできない
http://support.microsoft.com/kb/822798/ja

方法 2: Catroot2 フォルダーの名前を変更する

にて改善するかと思います。

  • Windows 更新プログラムが暗号化されたサービス プロバイダーを判別できない

が原因であれば、

■ プログラムや更新プログラムをインストールできない
http://support.microsoft.com/kb/822798/ja

方法 3: Cryptographic Services に関連付けられている DLL ファイルを再登録する

が対応方法となるかと思いますが、Windows Vista では KB の内容に誤り(再登録するコンポーネントのファイル名に誤り)がある為、完全には復旧しないようです。

ファイル名存在の有無
softpub.dll存在する
wintrust.dll存在する
initpki.dllVista 以降では存在しない
dssenh.dll存在する
rsaenh.dll存在する
gpkcsp.dllVista 以降では存在しない
sccbase.dllVista 以降では存在しない
slbcsp.dllVista 以降では存在しない
mssip32.dll存在する
cryptdlg.dll存在する

このような差異が発生しているのは、Windows Vista 以降で暗号化 API に仕様変更が入っている為と思われます。
(暗号化 API が「Crypto API」→「CNG(Crypto Next Generation)」に変更されている為)

■ Windows Vista の CNG API を使用して暗号化を行う
http://msdn.microsoft.com/ja-jp/magazine/cc163389.aspx



長くなりましたが、結論として、現時点の問題としては、Windows Vista の新しい暗号化 API が正しく機能していないことが原因と考えられます。
以下は、暗号化 API が使用する暗号化プロバイダ(CNG Provider)を列挙するサンプルプログラムです。
.NET Framework がインストールされている環境であれば、コンパイルして確認できるかと思います。
想定する暗号化プロバイダが表示されるか確認してみてください。

■ Using the Cryptography Configuration Features of CNG (Windows)
http://msdn.microsoft.com/ja-jp/library/bb204780.aspx


// File : EnumCngProvider.cs
// Compile : 
//    C:\> SET PATH=C:\Windows\Microsoft.NET\Framework\v2.0.50727;%PATH% [Enter]
//    C:\> csc EnumCngProvider.cs [Enter]
// Usage : EnumCngProvider.exe [Enter]
using System;
using System.Collections.Generic;
using System.Data;
using System.Runtime.InteropServices;

class EnumCngProvider
{
    [DllImport("Bcrypt.dll", SetLastError = true)]
    public static extern uint BCryptEnumRegisteredProviders(
        ref int pcbBuffer,
        ref IntPtr ppBuffer
    );
    [DllImport("Bcrypt.dll", SetLastError = true)]
    public static extern uint BCryptFreeBuffer(
        IntPtr pvBuffer
    );
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    public class CRYPT_PROVIDERS
    {
        public int cProviders;
        public IntPtr rgpszProviders;
    }

    public static List<string> GetCngProviders()
    {
        int cbBuffer = 0;
        IntPtr pBuffer = IntPtr.Zero;
        List<string> providers;
        EnumCngProvider.CRYPT_PROVIDERS cngProviders = new EnumCngProvider.CRYPT_PROVIDERS();

        uint status = EnumCngProvider.BCryptEnumRegisteredProviders(ref cbBuffer, ref pBuffer);
        if ( status == 0 )
        {
            if (pBuffer != IntPtr.Zero)
            {
                providers = new List<string>();
                Marshal.PtrToStructure(pBuffer, cngProviders);
                IntPtr[] rgpszProviders = new IntPtr[cngProviders.cProviders];
                Marshal.Copy(cngProviders.rgpszProviders, rgpszProviders, 0, cngProviders.cProviders);
                for (int i = 0; i < cngProviders.cProviders; i++)
                {
                    providers.Add(Marshal.PtrToStringUni(rgpszProviders[i]));
                }
                EnumCngProvider.BCryptFreeBuffer(pBuffer);
                return providers;
            }
        }
        
        return null;
    } 

    static void Main()
    {
        List<string> stringList = GetCngProviders();
        foreach (string s in stringList) {
            Console.WriteLine(s);
        }
    }
}

  • 実行結果
暗号化プロバイダ名ファイル名
Microsoft Primitive Providerbcrypt.dll
Microsoft Smart Card Key Storage Providerscksp.dll
Microsoft Software Key Storage Providerncrypt.dll
Microsoft SSL Protocol Providerncrypt.dll

上記の暗号化プロバイダが一覧に表示されない場合は、暗号化プロバイダが正しく登録されていない可能性があります。
一覧に表示するが機能しないというケースであれば、DLL の依存関係に問題がある可能性があります。
その場合は、以下のツールにて、足りない DLL が無いか調査することが可能です。

■ Dependency Walker (depends.exe) Home Page
http://www.dependencywalker.com/

他10件のコメントを見る
id:cx20

???
かなり勘違いされているようですが、私は、Google とも Microsoft とも関係ないですよ。
ましてや本なんて出してませんし(苦笑)
とりあえず、連絡は Twitter にてお願いします。ID は Hatena ID と同じです。

2012/05/22 06:28:11
id:kireifish

そう言えば、いつも07:40~50頃投稿されてますね。
こちらはその時間帯でも大丈夫です。

2012/05/22 06:38:42
  • id:kireifish
    続きです。

    解決方法 1:
    「Windows Update を使用して Service Pack をインストールするのではなく、
    Service Pack のスタンドアロン パッケージをインストールする」
    Windows Vista Service Pack 1 (5 言語用スタンドアロン版) (KB936330)
    http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=b0c7136d-5ebb-413b-89c9-cb3d06d12674

    解決方法 2:
    「システム更新準備ツールを実行する」
    システム更新準備ツール (KB947821) [2009 年 4 月]
    Windows6.0-KB947821-v4-x86.msu
    http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=0435684b-8d12-4028-9cb0-b2903257f1fd&displaylang=ja-nec

    解決方法 3:
    「実行中のアプリケーションをすべて終了または無効にし、
    コンピューターを再起動してから Service Pack をインストールする」

    解決方法 4:
    「セキュリティプログラムをすべてアンインストールし、
    コンピューターを再起動してから Service Pack をインストールする」

    セキュリティプログラムでアンインストールしたもの:
    ダウンロード詳細 Microsoft XML Core Services 4.0 Service Pack 2 の更新プログラム
    (KB973688)
    http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=00BCDF28-2299-4150-964D-88A601E25229

    [MS06-071] Microsoft XML コア サービス 4.0 用のセキュリティ更新プログラム
    (KB927978)
    http://support.microsoft.com/kb/927978/ja#appliesto

    ダウンロード詳細 MSXML 4.0 Service Pack 2 のセキュリティ更新プログラム
    (KB954430)
    http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=96A4413C-5261-4F69-83D0-932C430ABD14

    解決方法1〜4を全て丁寧に試していく!
    が・・・・駄目っ・・・・・!



    他にもいろいろ方法はありますが、
    「システムの復元」は過去にシステムの復元ポイントを意図的に切っていたので、
    過去のシステムに戻れない!

    「クリーンインストール」はCDを紛失したので、これも駄目っ・・・・!

    「セーフモード」から起動すると、解決方法1、2がうまくいく場合があると
    続きです。

    マイクロソフトの公式フォーラムで聞いたが、これも駄目!

    参考:
    マイクロソフトの公式フォーラム
    http://answers.microsoft.com/ja-jp/windows/forum/windows_vista?auth=1

    ・・・・もう駄目なことは分かっています。
    しかし、それでも一縷の望みをこの人力検索はてなに賭けたいと思い、投稿してみました。
    もし、この絶望的状況を回復する方法を知ってらっしゃる奇特な方がいらっしゃいましたら、
    即決で500ptをプレゼントしたいと思います。
  • id:cx20
    エラーコードだけでは、原因の特定は困難ですが、
    ログファイルを調査すれば、もう少し、原因究明の糸口が見つかるかも知れません。

    インストールログが以下の場所に記録されるようです。

    ■ Service Packのインストール・ログを記録/確認する - @IT
    http://www.atmarkit.co.jp/fwin2k/win2ktips/1021splog/splog.html

    > %windir%\Logs\CBS

    ダメ元ということでしたら、参考まで。。。
  • id:taknt
    正直言って Vistaなんて 糞OSは 捨てて Windows7を買ってきて フォーマットしてから
    インストールすることを オススメします。
  • id:cx20
    添付の画像のエラーコードと質問文のエラーコードが異なるようですが、表示されるのはどちらでしょうか?

    エラー コード「0x800B0100」の場合であれば、以下の情報が参考になるかもしれません。

    ■ エラー コード 0x800B0100 が、Windows Update または Microsoft Update を使用して更新プログラムをインストールするときに表示される
    http://support.microsoft.com/kb/956702/ja

    以下のコンポーネントを再登録することで改善するかもしれません。

    > regsvr32 Softpub.dll /s
    > regsvr32 Wintrust.dll /s
    > regsvr32 Initpki.dll /s
    > regsvr32 Mssip32.dll /s
  • id:kireifish
    回答ありがとうございます。
    まず、最初の回答から。

    > %windir%\Logs\CBS の件ですが、
    CBS.logが見つかりました。

    どこからどこまでが該当するログか分からないので、適当に抜き出してみました。
    -------------------------------------------------------------------------------------------------------------------
    2012-05-10 07:32:47, Info CBS Read out cached package applicability for package: Package_for_KB953155~31bf3856ad364e35~x86~~6.0.1.4, ApplicableState: 7, CurrentState:7
    2012-05-10 07:32:47, Info CBS Session: 30223923:2831579407 finalized. Reboot required: no
    2012-05-10 07:32:47, Info CBS Session: 30223923:2834626127 initialized.
    2012-05-10 07:32:47, Info CBS Read out cached package applicability for package: VistaSP1-KB936330~31bf3856ad364e35~x86~~6.0.0.18000, ApplicableState: 7, CurrentState:0
    2012-05-10 07:32:47, Info CBS Session: 30223923:2834626127 finalized. Reboot required: no
    2012-05-10 07:32:47, Info CBS Session: 30223923:2836950197 initialized.
    -------------------------------------------------------------------------------------------------------------------


    この下から3段目の「KB936330」で検索をかけてみましたが、
    アメリカのマイクロソフト公式フォーラムでも
    更新準備ツールを使えとか、クリーンインストールしろ、とか
    日本版と大差ない答えでした。(全部は確認していませんが)

    http://answers.microsoft.com/en-us/Search/Search?SearchTerm=KB936330&CurrentScope.ForumName=Windows&CurrentScope.Filter=&askingquestion=false





  • id:kireifish
    2つ目の回答について。
    「添付の画像のエラーコードと質問文のエラーコードが異なるようですが、表示されるのはどちらでしょうか?」

    すみません。僕の表記ミスです。
    添付画像の方が正しいです。


    一応、
    エラー コード「0x800B0100」のFix itツールと更新準備ツールとコンポーネントの再登録も試しましたが、
    3つとも駄目でした・・・。
    (もちろんコンポーネントの再登録後、再起動してからService Packのインストールを試みました)



    で、
    エラーコード: 0x8007000D ですが、これも同じような回答ばかりでした。
    (これも全部は確認してませんが。)

    Error code 0x8007000d data invalid when tried to install Service Pack - Microsoft Answers http://answers.microsoft.com/en-us/windows/forum/windows_other-windows_update/error-code-0x8007000d-data-invalid-when-tried-to/fb4ec7b5-3646-4eae-b92b-eccc86901289


    Service Pack 1 install error 0x8007000D - Microsoft Answers
    http://answers.microsoft.com/en-us/windows/forum/windows_other-windows_update/service-pack-1-install-error-0x8007000d/022fda5a-b8e8-47e0-b0c1-df88c1a3a60e

  • id:kireifish
    「ログ診断ツール」というのがあるようです。

    オプション コンポーネントのセットアップ ログ診断ツール
    http://technet.microsoft.com/ja-jp/library/cc732334(v=ws.10).aspx#BKMK_1


    ところで、ログというのは2種類あるようです。
    「WindowsUpdate.log」と「CBS.log」です。

    上記によると、「FATAL」という文字を探し、0x800#####の末尾を16進数から10進数へ変換し、
    http://msdn.microsoft.com/en-us/library/ms681381.aspx から該当するエラーコードを検索してください、
    ということらしいですが、どうもWindows Vista Service Pack 1とは関係無いっぽいんですよね・・・。
    (いくつかFATALの0x800#####を検索してみましたが、ちょっと分からず・・・。)

    この「FATAL」という文字は「WindowsUpdate.log」から見つかりました。
    (見せてほしいということであれば、投稿しますが、たくさんあり過ぎて僕もどれかよいのか分かりませんが・・・)



    そこで、
    「WindowsUpdate.log」の「Windows Vista Service Pack 1」辺りのログをのせてみます。

    -------------------------------------------------------------------------------------------------------------------
    2012-05-09 12:05:51:651 1068 11b8 DnldMgr ** START ** DnldMgr: Downloading updates [CallerId = AutomaticUpdates]
    2012-05-09 12:05:51:651 1068 11b8 DnldMgr *********
    2012-05-09 12:05:51:651 1068 11b8 DnldMgr * Call ID = {C7712573-62D5-437F-925D-A59F46AAFBE1}
    2012-05-09 12:05:51:651 1068 11b8 DnldMgr * Priority = 1, Interactive = 0, Owner is system = 1, Explicit proxy = 0, Proxy session id = -1, ServiceId = {7971F918-A847-4430-9279-4A52D1EFE18D}
    2012-05-09 12:05:51:651 1068 11b8 DnldMgr * Updates to download = 1
    2012-05-09 12:05:51:651 1068 11b8 Agent * Title = Windows Vista Service Pack 1 (KB936330)
    2012-05-09 12:05:51:651 1068 11b8 Agent * UpdateId = {66F16258-9D3B-4353-8765-E55E803151D0}.107
    2012-05-09 12:05:51:651 1068 11b8 Agent * Bundles 2 updates:
    2012-05-09 12:05:51:651 1068 11b8 Agent * {106ED2F3-51E8-4B09-9A11-17F463AA467F}.107
    2012-05-09 12:05:51:651 1068 11b8 Agent * {C3E99F5D-2F9C-42BE-93E2-ACFA9E16852A}.107
    2012-05-09 12:05:51:652 1068 11b8 DnldMgr *********** DnldMgr: Regulation Refresh [Svc: {7971F918-A847-4430-9279-4A52D1EFE18D}] ***********
    2012-05-09 12:05:51:652 1068 11b8 DnldMgr * Regulation call complete. 0x00000000
    2012-05-09 12:05:51:660 1068 11b8 DnldMgr *********** DnldMgr: New download job [UpdateId = {106ED2F3-51E8-4B09-9A11-17F463AA467F}.107] ***********
    2012-05-09 12:05:51:660 1068 11b8 DnldMgr Regulation: {7971F918-A847-4430-9279-4A52D1EFE18D} - Update 106ED2F3-51E8-4B09-9A11-17F463AA467F is "Priority" regulated and can NOT download. Sequence 9699 vs AcceptRate 0.
    2012-05-09 12:05:51:660 1068 11b8 DnldMgr * Update is not allowed to download due to regulation.
    2012-05-09 12:05:51:661 1068 11b8 DnldMgr *********** DnldMgr: New download job [UpdateId = {C3E99F5D-2F9C-42BE-93E2-ACFA9E16852A}.107] ***********
    2012-05-09 12:05:51:661 1068 11b8 DnldMgr Regulation: {7971F918-A847-4430-9279-4A52D1EFE18D} - Update C3E99F5D-2F9C-42BE-93E2-ACFA9E16852A is "Priority" regulated and can NOT download. Sequence 9699 vs AcceptRate 0.
    2012-05-09 12:05:51:661 1068 11b8 DnldMgr * Update is not allowed to download due to regulation.
    2012-05-09 12:05:51:661 1068 11b8 DnldMgr Regulation: {7971F918-A847-4430-9279-4A52D1EFE18D} - Update 106ED2F3-51E8-4B09-9A11-17F463AA467F is "Priority" regulated and can NOT download. Sequence 9699 vs AcceptRate 0.
    2012-05-09 12:05:51:661 1068 11b8 DnldMgr Regulation: {7971F918-A847-4430-9279-4A52D1EFE18D} - Update C3E99F5D-2F9C-42BE-93E2-ACFA9E16852A is "Priority" regulated and can NOT download. Sequence 9699 vs AcceptRate 0.
    2012-05-09 12:05:51:661 1068 11b8 DnldMgr Regulation: {7971F918-A847-4430-9279-4A52D1EFE18D} - Update 106ED2F3-51E8-4B09-9A11-17F463AA467F is "Priority" regulated and can NOT download. Sequence 9699 vs AcceptRate 0.
    2012-05-09 12:05:51:661 1068 11b8 DnldMgr Regulation: {7971F918-A847-4430-9279-4A52D1EFE18D} - Update C3E99F5D-2F9C-42BE-93E2-ACFA9E16852A is "Priority" regulated and can NOT download. Sequence 9699 vs AcceptRate 0.
    2012-05-09 12:05:51:661 1068 11b8 Agent *********
    2012-05-09 12:05:51:661 1068 11b8 Agent ** END ** Agent: Downloading updates [CallerId = AutomaticUpdates]
    -------------------------------------------------------------------------------------------------------------------


    また、いろいろ試行錯誤してみます・・・。
  • id:kireifish
    「WindowsUpdate.log」の「FATAL」の件ですが、
    たくさんあり過ぎて分からないと言いましたが、エラーコードはどれも同じでした。


    大事なのは、この辺りでしょうか。

    Handler FATAL: Error source is 106.
    (中略)
    DnldMgr Error 0x800b0100 occurred while downloading update; notifying dependent calls.


    エラーコード「0x800b0100」の末尾「0100」を16進数から10進数に直すと、「256」ですが、
    http://msdn.microsoft.com/en-us/library/ms681382.aspx では見つからない?



    「Handler FATAL: Error source is 106.」で適当に検索した結果。
    http://social.technet.microsoft.com/forums/en-US/itprovistasp/thread/1dd9856b-1fd8-46d9-89ef-39b610e8cf18/

    http://blogs.technet.com/b/brad_rutkowski/archive/2008/07/03/windows-update-fails-with-8000ffff-e-unexpected.aspx

    もうわけがわからないよ!(QB)
    だんだん深みにハマってきました・・・。




    「WindowsUpdate.log」の「FATAL」がある箇所を抜き出しました。
    -------------------------------------------------------------------------------------------------------------------
    2012-05-04 10:46:03:771 1048 1718 DnldMgr ** START ** DnldMgr: Downloading updates [CallerId = AutomaticUpdates]
    2012-05-04 10:46:03:771 1048 1718 DnldMgr *********
    2012-05-04 10:46:03:771 1048 1718 DnldMgr * Call ID = {F58D34E1-4393-41B5-BBFB-E3E6209D65AC}
    2012-05-04 10:46:03:771 1048 1718 DnldMgr * Priority = 1, Interactive = 0, Owner is system = 1, Explicit proxy = 0, Proxy session id = -1, ServiceId = {7971F918-A847-4430-9279-4A52D1EFE18D}
    2012-05-04 10:46:03:771 1048 1718 DnldMgr * Updates to download = 1
    2012-05-04 10:46:03:771 1048 1718 Agent * Title = Windows Vista Service Pack 1 (KB936330)
    2012-05-04 10:46:03:771 1048 1718 Agent * UpdateId = {66F16258-9D3B-4353-8765-E55E803151D0}.107
    2012-05-04 10:46:03:771 1048 1718 Agent * Bundles 2 updates:
    2012-05-04 10:46:03:771 1048 1718 Agent * {106ED2F3-51E8-4B09-9A11-17F463AA467F}.107
    2012-05-04 10:46:03:771 1048 1718 Agent * {C3E99F5D-2F9C-42BE-93E2-ACFA9E16852A}.107
    2012-05-04 10:46:03:772 1048 1718 DnldMgr *********** DnldMgr: Regulation Refresh [Svc: {7971F918-A847-4430-9279-4A52D1EFE18D}] ***********
    2012-05-04 10:46:03:772 1048 1718 DnldMgr * Regulation call complete. 0x00000000
    2012-05-04 10:46:03:880 1048 1718 DnldMgr *********** DnldMgr: New download job [UpdateId = {106ED2F3-51E8-4B09-9A11-17F463AA467F}.107] ***********
    2012-05-04 10:46:03:993 1048 1718 DnldMgr * All files for update were already downloaded and are valid.
    2012-05-04 10:46:03:993 1048 1718 DnldMgr *********** DnldMgr: New download job [UpdateId = {C3E99F5D-2F9C-42BE-93E2-ACFA9E16852A}.107] ***********
    2012-05-04 10:46:03:994 1048 1718 DnldMgr * Queueing update for download handler request generation.
    2012-05-04 10:46:03:994 1048 1718 DnldMgr Generating download request for update {C3E99F5D-2F9C-42BE-93E2-ACFA9E16852A}.107
    2012-05-04 10:46:04:723 1048 1718 Handler Generating request for CBS update C3E99F5D-2F9C-42BE-93E2-ACFA9E16852A in sandbox C:\Windows\SoftwareDistribution\Download\c452caabaad248a66aa697d8c8545eb1
    2012-05-04 10:46:04:779 1048 1718 Handler Selected payload type is ptExpress
    2012-05-04 10:46:05:226 1048 1718 Handler UH: DpxRestoreJob returned 0x80070002
    2012-05-04 10:46:05:226 1048 1718 Handler Detected download state is dsHavePackage
    2012-05-04 10:49:05:622 1048 1bec DnldMgr BITS job {6AA255B8-446B-4658-B289-8F1DE68B0F2E} completed successfully
    2012-05-04 10:49:06:028 1048 1bec Misc Validating signature for C:\Windows\SoftwareDistribution\Download\1c324927aa8fcdbc464b27a3ec9cb1b2\66fad2329f2c64b1532b3dbc70a7c6c73d6ee23e:
    2012-05-04 10:49:06:369 1048 1bec Misc Microsoft signed: Yes
    2012-05-04 10:49:06:404 1048 1bec DnldMgr Download job bytes total = 17548280, bytes transferred = 17548280
    2012-05-04 10:49:06:405 1048 1bec DnldMgr *********** DnldMgr: New download job [UpdateId = {1D83B745-FE81-4068-AC4B-BA64D8B89AFA}.100] ***********
    2012-05-04 10:49:06:657 1048 1bec DnldMgr * All files for update were already downloaded and are valid.
    2012-05-04 10:49:06:672 1048 1bec DnldMgr *********** DnldMgr: New download job [UpdateId = {C3E99F5D-2F9C-42BE-93E2-ACFA9E16852A}.107] ***********
    2012-05-04 10:49:06:672 1048 18a8 AU >>## RESUMED ## AU: Download update [UpdateId = {757DD716-B31B-4132-9A9F-14D81071463A}, succeeded]
    2012-05-04 10:49:20:293 1048 1cd4 Handler FATAL: CBS called Error with 0x800b0100,
    2012-05-04 10:49:20:294 1048 1718 Handler FATAL: UH: 0x800b0100: Async stage operation failed in CUHCbsHandler::StageCbsPackage
    2012-05-04 10:49:20:507 1048 1718 Handler FATAL: Request generation for CBS update complete with hr=0x800b0100 and pfResetSandbox=0
    2012-05-04 10:49:20:507 1048 1718 Handler FATAL: Error source is 106.
    2012-05-04 10:49:20:507 1048 1718 DnldMgr FATAL: DM:CAgentDownloadManager::GenerateAllDownloadRequests: GenerateDownloadRequest failed with 0x800b0100.
    2012-05-04 10:49:20:507 1048 1718 DnldMgr Error 0x800b0100 occurred while downloading update; notifying dependent calls.
    2012-05-04 10:49:36:584 1048 1718 Agent *********
    2012-05-04 10:49:36:584 1048 1718 Agent ** END ** Agent: Downloading updates [CallerId = AutomaticUpdates]
    -------------------------------------------------------------------------------------------------------------------

  • id:cx20
    0x800B0100 のエラーコードの意味は、

    > TRUST_E_NOSIGNATURE
    >
    > サブジェクトに署名がありませんでした。
    > (No signature was present in the subject.)

    ということみたいですね。

    このエラーは「システム更新準備ツール」で修正される可能性があるようですが、
    うまくいかないということですので、恐らく、修正に失敗して、以下のログが出力されているのではないかと思います。

    ■ Windows Vista、Windows Server 2008、Windows 7、および Windows Server 2008 R2 のシステム更新準備ツールについて
    http://support.microsoft.com/kb/947821

    > システム更新準備ツールによりログ ファイルが作成され、検出または修正された問題がそこに記録されます。
    > このログ ファイルは以下の場所に作成されます。
    >
    > %SYSTEMROOT%\Logs\CBS\CheckSUR.log
    > %SYSTEMROOT%\Logs\CBS\CheckSUR.persist.log

    ダメかもしれないですが、
    「SoftwareDistributionフォルダ」を再作成すると解消するケースがあるようです。
    (ダウンロードファイルの破損や、カタログデータベースの破損に原因がある場合、再作成することで解消できるケースがあるようです。)

    <参考情報>
    ■ Windows Update/Microsoft Updateのトラブルを解消する(SoftwareDistributionフォルダを修復する方法) - @IT
    http://www.atmarkit.co.jp/fwin2k/win2ktips/944rcvsoftdist/rcvsoftdist.html
    ■ プログラムや更新プログラムをインストールできない
    http://support.microsoft.com/kb/822798/ja

    ちなみに、以下の質問者の方は、カタログデータベース(catroot, catroot2)を再作成することで解消できているようです。

    ■ windows updates wont download - Microsoft Answers
    http://answers.microsoft.com/en-us/windows/forum/windows_other-windows_update/windows-updates-wont-download/e46448bd-332c-45fc-bd67-d4d684dd1103
  • id:kireifish
    cx20さん。
    返事が遅れましてすみません。((^^))。

    とりあえず以下のURLの解決方法1〜11全てを試していこうと思います。

    ■ プログラムや更新プログラムをインストールできない
    http://support.microsoft.com/kb/822798/ja


    今のところ、SoftwareDistributionフォルダを修復して、
    再度手動で、Windows Vista Service Pack 1 (5 言語用スタンドアロン版) (KB936330)
    をダウンロードしようとしましたが、うまくいきませんでした。

    ところで、Windows Updateの自動更新プログラムからはService Pack 1がダウンロードされてこないんですけど、
    これは何か理由があるのでしょうか>


    また、明日結果の返事をします。
  • id:cx20
    > ちなみに、以下の質問者の方は、カタログデータベース(catroot, catroot2)を再作成することで解消できているようです。

    すみません。ウソ書いてました。

    > ■ プログラムや更新プログラムをインストールできない
    > http://support.microsoft.com/kb/822798/ja

    の「方法 2: Catroot2 フォルダーの名前を変更する」を見て気が付きましたが、
    再作成されるのは『catroot2』のみで『catroot』は再作成されないようです。

    > [重要]: CatRoot フォルダーの名前は変更しないでください。
    > CatRoot2 フォルダーは Windows によって自動的に再作成されますが、
    > CatRoot フォルダーは名前を変更すると再作成されません。

    お間違いの無いよう、ご注意願います。
  • id:kireifish
    <再作成されるのは『catroot2』のみで『catroot』は再作成されないようです。

    はい。分かっていますよ。大丈夫です。
  • id:kireifish
    プログラムや更新プログラムをインストールできない
    http://support.microsoft.com/kb/822798/ja

    の件ですが、方法 3、6、7、8、11:以外は全て試しました。

    方法 3:はモジュールの読み込みに失敗したからです。
    方法 6:は「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」と表示され、Process Monitorというのを使えばよいらしいですが、もう諦めました…。
    方法 7:はやり方がよく分からなかったからです。
    方法 8:も同様です。
    方法 11:はたぶん関係ないのでは、と判断したからです。


    うーん・・・うまくいきませんね・・・。


  • id:cx20
    > 方法 3:はモジュールの読み込みに失敗したからです。

    どのモジュールでしょうか。
    失敗の原因は表示されませんでしたか?
    ・モジュールが見つからない
    ・アクセス権が無い
    など。

    <regsvr32 のエラーの例>
    ■ Regsvr32 の使用法とエラー メッセージについて
    http://support.microsoft.com/kb/249873/ja

    システムコンポーネントが正しく登録できていないようですので、
    このあたりが解決すれば、もう少し前に進みそうな気がします。
  • id:kireifish
    cx20さん、返事が遅れてしまいすみません。

    「方法 10: ソフトウェア配布フォルダーを空にする」 を行なったら、別の問題が発生して手間取ってしまいました。
    (これは今回とは別の問題になるので、機会があれば、新たに質問を投稿するかもしれません)

    さて、
    方法 3:はモジュールの読み込みに失敗した件ですが、
    「regsvr32 /u initpki.dll」が読み込みに失敗し、

    「モジュール ""%1"" の読み込みに失敗しました。
    \n\nバイナリが指定されたパスに格納されていることを確認するか、
    バイナリまたは依存 .DLL ファイルに問題がないかどうかを調べてください。」

    と表示されます。

    検索したら、いろいろ出てきますけど、結局どうすればいいんでしょうか?
  • id:cx20
    > 方法 3:はモジュールの読み込みに失敗した件ですが、
    > 「regsvr32 /u initpki.dll」が読み込みに失敗し、
        :
    > 検索したら、いろいろ出てきますけど、結局どうすればいいんでしょうか?


    MS の KB に書かれている内容に誤りがある(情報が古い)ようですね。
    Windows Vista に

    ・initpki.dll
    ・gpkcsp.dll
    ・sccbase.dll
    ・slbcsp.dll

    というファイルは、そもそも存在しないようです。

    以下は、Vista (SPなし) 環境にて WHERE コマンドを使って DLL パスを調査した結果になります。
    -------------------------------------------------------------------
    Microsoft Windows [Version 6.0.6000]
    Copyright (c) 2006 Microsoft Corporation. All rights reserved.

    C:\Windows\system32>cd\

    C:\>where softpub.dll
    C:\Windows\System32\softpub.dll

    C:\>where wintrust.dll
    C:\Windows\System32\wintrust.dll

    C:\>where initpki.dll
    情報: 与えられたパターンのファイルが見つかりませんでした。

    C:\>where dssenh.dll
    C:\Windows\System32\dssenh.dll

    C:\>where rsaenh.dll
    C:\Windows\System32\rsaenh.dll

    C:\>where gpkcsp.dll
    情報: 与えられたパターンのファイルが見つかりませんでした。

    C:\>where sccbase.dll
    情報: 与えられたパターンのファイルが見つかりませんでした。

    C:\>where slbcsp.dll
    情報: 与えられたパターンのファイルが見つかりませんでした。

    C:\>where mssip32.dll
    C:\Windows\System32\mssip32.dll

    C:\>where cryptdlg.dll
    C:\Windows\System32\cryptdlg.dll

    C:\>
    -------------------------------------------------------------------
    (Windows 7 でも同様の結果でした。Vista 以降では、システムコンポーネントの構成に変更が入っているようです。)

    存在しないコンポーネントは登録のしようが無いので上記ファイルのエラーは無視して頂いて構いません。
    ただ、本来何を登録すべきかは、KB の情報からは分からないですね。。。

    ちょっと、どうどう巡りになってきている感もありますが、
    「システム更新準備ツール」の最新版を適用してみては如何でしょうか?
    (v4 → v19 に更新されているようです。)

    > 解決方法 2:
    > 「システム更新準備ツールを実行する」
    > システム更新準備ツール (KB947821) [2009 年 4 月]
    > Windows6.0-KB947821-v4-x86.msu
    > http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=0435684b-8d12-4028-9cb0-b2903257f1fd&displaylang=ja-nec

    ■ ダウンロード詳細 Windows Vista 用のシステム更新準備ツール (KB947821) [2012 年 2 月]
    Windows6.0-KB947821-v19-x86.msu
    http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=B4D90B06-C27D-4483-BC1F-04D43FA7B293

    2012年2月版は、サポート要件 Vista SP2 となっていますが、
    手持ちの Vista (SPなし) にて適用できることを確認しました。

    以下のブログの方が上記の方法で解決しているようです。

    <参考情報>
    ■ 続・Windows Vista SP2 で「サブジェクトに署名がありませんでした。」 - 取締役 平社員 ブログ (ベータ版)
    http://d.hatena.ne.jp/TsuSUZUKI/20091003/1254576135
  • id:kireifish
    cx20さん。こんにちは。
    ■ ダウンロード詳細 Windows Vista 用のシステム更新準備ツール (KB947821) [2012 年 2 月]
    Windows6.0-KB947821-v19-x86.msu
    をインストールし、再起動をかけ、Service Pack 1をインストールしようとしましたが、やはり失敗しました。
    (余談ですが、「インストールに失敗しました」とすぐに表示されます。通常は20分くらいかかるのに…。)

    あと、余談かもしれませんが、
    「コントロールパネル」-「セキュリティ」-「Windows Update」の更新プログラムを確認しようとすると、

    「このコンピュータで利用できる新しい更新プログラムを確認中にエラーが発生しました。
    エラー: 800B0001 Windows Updateで不明なエラーが発生しました。」と表示され、
    確認できないようになってしまいました。

    修復するには、システム更新準備ツールを使えばよいらしいですが、堂々めぐりに陥っています・・・。
    Windows Update エラー 800B0001
    http://windows.microsoft.com/ja-JP/windows7/Windows-Update-error-800B0001

    CBS.log、

    オプション コンポーネントのセットアップ ログ診断ツール
    http://technet.microsoft.com/ja-jp/library/cc732334(v=ws.10).aspx#BKMK_1

    「WindowsUpdate.log」の「FATAL」の件

    不明なままですし。


    これで全ての施策を試したことになりますが、
    もう解決策はありませんよね?

    しかし、Windowsに表示されるエラーが実情を反映しているとは限らないこと、
    DLLについて、など、いろいろと勉強になりました。^_^

    このパソコンは10年使っていて、
    デフラグを繰り返したり、CCCleanerなどを使う際にレジストリのバックアップを取らずに掃除したりなど、
    かなり乱暴な使い方をしてきたので、このような事態も想定できうるものでした。

    こんな面倒な質問に粘り強く答えてくれたcx20さんに感謝しています。
    解決には至りませんでしたが、せめてものお礼にcx20さんに500ptを差し上げたいと思います。

    お返事お待ちしています。
  • id:hirohiro3
    管理者でログインされてるんですよね...

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません