パッケージ マネージャーは、Windows Vista の同じフォルダーに 2 つ以上のパッケージを抽出する場合、最初のパッケージのみをインストールできます

この記事では、パッケージ マネージャーが同じサンドボックス内で複数のパッケージを管理できないために発生する問題について説明します。

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 932224

現象

Windows Vista では、2 つ以上のパッケージを同じフォルダーに抽出する場合、パッケージ マネージャー ツールは最初のパッケージのみをインストールできます。

たとえば、次のようなシナリオについて考えてみます。

  • Windows Vista を実行しているコンピューターで、C:\Temp フォルダーを作成します。

  • 次の修正プログラム パッケージをこのフォルダーにダウンロードします。

    • Windows6.0-KB929761-x86.msu

    • Windows6.0-KB932590-x86.msu

      これらの修正プログラム パッケージは、修正プログラム 929761および修正プログラム 932590 用です。

  • 修正プログラム パッケージを展開するには、次のコマンドを実行します。

    c:\temp>expand c:\temp\Windows6.0-KB929761-x86.msu -F:Windows6.0-KB929761-x86.cab c:\temp
    
    c:\temp>expand c:\temp\Windows6.0-KB932590-x86.msu -F:Windows6.0-KB932590-x86.cab c:\temp
    
  • パッケージをインストールするには、次のコマンドを実行します。

    start /w Pkgmgr /ip /m:c:\temp\Windows6.0-KB929761-x86.cab
    
    start /w Pkgmgr /ip /m:c:\temp\Windows6.0-KB932590-x86.cab
    

このシナリオでは、パッケージ マネージャーは修正プログラム 929761のパッケージのみをインストールします。

この問題が発生すると、次のような情報がCbs.log ファイルに表示されることがあります。

このファイルCbs.log例では、パッケージ マネージャーは修正プログラム 932590 の .cab ファイルをインストールすることを示します。 ただし、実際には Package_1_for_KB929761~31bf3856ad364e35~x86~~6.0.1.1 パッケージがインストールされます。 これは、修正プログラム 929761 パッケージです。

注:

この問題は、Windows Server 2008 にも適用されます。

原因

この問題は、パッケージ マネージャーが同じサンドボックス内で複数のパッケージを管理できないために発生します。

解決方法

この問題を回避するには、次のいずれかの方法を実行します。

メソッド 1:

pkgmgr を使用してインストールする前に、各パッケージを別のフォルダーに展開します。 これを行うには、コマンド プロンプトで次のコマンドを入力します。

Delete update*.*

Mkdir c:\temp\sandbox1

Mkdir c:\temp\sandbox2

Start /w pkgmgr /ip /m:c:\temp\ CabFile /s:c:\temp\sandbox1

Start /w pkgmgr /ip /m:c:\temp\ CabFile /s:c:\temp\sandbox2

これらのコマンドでは、 CabFile は修正プログラム パッケージの .cab ファイルを表します。

メソッド 2:

もう 1 つの回避策は、DISM を使用して Windows Vista SP1 と Windows Server 2008 オフライン イメージを処理することです。

Windows Server 2008/Vista SP1 イメージでの DISM の使用に関する考慮事項:

  • 更新する Windows イメージは、SP1 または Windows Server 2008 以降の Windows Vista である必要があります。
  • SP1 または Windows Server 2008 イメージで Windows Vista をサービスする場合、DISM は DISM コマンドを同等のパッケージ マネージャー コマンドに変換して、イメージを更新できるようにします。 DISM は、パッケージ マネージャーに機能パリティを提供します。
  • オフライン シナリオのみがサポートされます
  • DISM は、Windows 7 および Windows Server 2008 R2 と共にプレインストールされており、Windows 7 用 Windows 自動インストール キットに含まれています。 Windows 自動インストール キットは、Windows Vista と Windows 2008 にインストールできます。

エディター注意: Win7 waik のダウンロード リンク: Windows 7 用 Windows 自動インストール キット (AIK)

DISM を使用してオフライン イメージにパッケージを追加する

  1. 管理者特権のコマンド プロンプトで OPK サービス フォルダーに移動し、次のコマンドを入力して、変更するイメージの名前またはインデックス番号を取得します。

    Dism /Get-WIMInfo /WimFile:C:\test\images\install.wim
    

    注:

    Windows イメージング (WIM) ファイルを指定するほとんどの操作では、インデックスまたは名前の値が必要です。

  2. オフライン Windows イメージをマウントするには、次のコマンドを入力します。

    Dism /Mount-WIM /WimFile:C:\test\images\install.wim /Name:"Windows 7 HomeBasic" /MountDir:C:\test\offline
    
  3. コマンド プロンプトで、次のコマンドを入力して、特定のパッケージをイメージに追加します。 1 つのコマンド ラインに複数のパッケージを追加できます。 パッケージは、コマンド ラインに記載されている順序でインストールされます。

    Dism /Image:C:\test\offline /Add-Package /PackagePath:C:\packages\package1.cab /PackagePath:C:\packages\package2.cab
    

    注:

    .cab は .msu ファイルから抽出されます。

  4. コマンド プロンプトで、次のコマンドを入力して変更をコミットし、イメージのマウントを解除します。

    Dism /Unmount-WIM /MountDir:C:\test\offline /Commit
    

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

データ収集

Microsoft サポートの支援が必要な場合は、「展開関連の問題について TSS を使用して情報を収集する」に記載している手順に従って情報を収集することをお勧めします。