Диспетчер пакетов может установить только первый пакет при извлечении двух или более пакетов в одну папку в Windows Vista.

В этой статье описывается проблема, которая возникает из-за того, что диспетчер пакетов не может управлять двумя или более пакетами в одной песочнице.

Применимо к следующим выпускам: Windows 10 – все выпуски, Windows Server 2012 R2
Исходный номер базы знаний: 932224

Симптомы

В Windows Vista средство диспетчера пакетов может установить только первый пакет при извлечении двух или нескольких пакетов в одну папку.

Рассмотрим, например, описанный ниже сценарий.

  • На компьютере под управлением 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 файл диспетчер пакетов указывает, что он установит файл .cab для исправления 932590. Однако фактически устанавливается пакет 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:

Еще одним обходным решением является использование DISM для обслуживания образов Windows Vista с пакетом обновления 1 (SP1) и Windows Server 2008 в автономном режиме.

Рекомендации по использованию DISM с образами Windows Server 2008/Vista с пакетом обновления 1 (SP1):

  • Образ Windows, который вы обновляете, должен быть Windows Vista с пакетом обновления 1 (SP1) или Windows Server 2008 или более поздней версии.
  • Если вы обслуживаете образ Windows Vista с пакетом обновления 1 (SP1) или Windows Server 2008, DISM преобразует команду DISM в эквивалентную команду диспетчера пакетов, чтобы можно было обновить образ. DISM обеспечивает функциональную четность диспетчера пакетов.
  • Поддерживаются только автономные сценарии
  • DISM предварительно устанавливается с Windows 7 и Windows Server 2008 R2 и входит в пакет автоматической установки Windows для Windows 7. Пакет автоматической установки Windows можно установить в Windows Vista и Windows 2008.

Редактор примечание: скачать ссылку для Win7 waik: The пакет автоматической установки Windows (AIK) для Windows 7

Добавление пакетов в автономный образ с помощью 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. В командной строке введите следующую команду, чтобы добавить определенный пакет в образ. В одну командную строку можно добавить несколько пакетов. Пакеты будут установлены в порядке, указанном в командной строке.

    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 для решения проблем, связанных с развертыванием.