Ошибка System.Runtime.InteropServices.COMException (0x80070246)

Всем привет! При установке обновлений на Windows Server 2008 R2 я столкнулся с неожиданной проблемой. Обновления установились, далее система попросила перезапуск.

При перезапуске системы я открываю менеджер сервера и в поле, где показываются роли сервера у меня показывает ошибку. 

error_0x80070246
Быстрый поиск в Интернете (читал тему на одном из форумов Microsoft Server Manager 2008 не может обнаружить состояние системы) обсуждался очень похожий вопрос. После прочтения я узнал, что суть проблемы заключается в неудачной установки обновления Windows.

К сожалению просто переустановить пакет не поможет, так как нужно открыть файл пакета обновления, заменить файлы и поместить их в нужное место.

Я объясню пошагово, что нужно делать, чтобы решить проблему (может получится спасти чье-то время).

Чтобы исправить такую ​​неудачное обновление необходимо скачать System Update Readiness Tool от Microsoft KB947821. Как только вы запустите ее, и она успешно «установится», вы можете прочитать отчет журнала, который он создаст в каталоге C:\Windows\Logs\CBS.  Нас интересует файл CheckSUR.log.

Примечание 1: это может занять некоторое время для приложения, чтобы закончить это отчет, MS сообщает, что, как правило, занимает менее 15 минут.

Примечание 2: Обратите внимание, что вы можете запустить этот инструмент несколько раз. Каждый раз, он будет «установить», и создать новый файл журнала. CheckSUR.persist.log, который будет содержать все предыдущие копии файла журнала, так что вы можете увидеть изменения между каждого теста.

Мой лог-файл содержал следующее:

=================================
Checking System Update Readiness.
Binary Version 6.1.7601.21645
Package Version 11.0
2011-02-24 11:09
 
Checking Windows Servicing Packages
 
Checking Package Manifests and Catalogs
(f) CBS MUM Corrupt 0x00000000  servicing\Packages\Package_for_KB2488113_SP1~31bf3856ad364e35~amd64~~6.1.1.0.mum        Expected file name Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~6.1.7600.16385.mum does not match the actual file name
 
Checking Package Watchlist
 
Checking Component Watchlist
 
Checking Packages
 
Checking Component Store
 
Summary:
Seconds executed: 273
 Found 1 errors
  CBS MUM Corrupt Total count: 1
 
Unavailable repair files:
    servicing\packages\Package_for_KB2488113_SP1~31bf3856ad364e35~amd64~~6.1.1.0.mum
    servicing\packages\Package_for_KB2488113_SP1~31bf3856ad364e35~amd64~~6.1.1.0.cat
 
(w) Unable to get system disk properties    0x0000045D  IOCTL_STORAGE_QUERY_PROPERTY    Disk Cache

Исходя из этого, мы можем узнать, что KB2488113 пакет имеет поврежденный манифест, и два файла в пределах пакете «недоступен». Не знаю, почему они недоступны, но файлы на самом деле существуют в нужной папке.

То, что вы должны теперь сделать, это найти правильный KB (в моем случае это KB2488113, находиться по адресу http://support.microsoft.com/kb/2488113) и загрузить пакет для своей версии Windows. Важно!!! Полученный файл с расширением MSU нужно переименовать в расширение .cab. После того, как я извлек архив, я нашел еще один .CAB внутри, содержащий файлы пакета (я предполагаю, что имя файла должно быть довольно очевидно, как в моем случае это был Windows6.1-KB2488113-x64.cab)

Теперь, есть пара вещей, которые необходимо выполнить. Помните, еще в лог-файл, то жаловался на файл Package_for_KB2488113_SP1 ~ ~ amd64 31bf3856ad364e35 ~~ 6.1.1.0.mum. Необходимо найти эти «отсутствующие» файлы в этой папке, и скопировать их в отдельный каталог. Я также должен был скопировал файлы update.cat и Update.mum, которые должны быть переименованы, чтобы было правильное имя для этого пакета. В моем случае, это было Package_for_KB2488113 ~ ~ amd64 31bf3856ad364e35 ~~ 6.1.1.0.

После того, как я сделал это, я получил папку со следующими файлами:

/Package_for_KB2488113~31bf3856ad364e35~amd64
/Package_for_KB2488113~31bf3856ad364e35~amd64
/Package_for_KB2488113_SP1~31bf3856ad364e35~amd64
/Package_for_KB2488113_SP1~31bf3856ad364e35~amd64

Эти файлы должны быть скопированы в папку %windir%\servicing\packages\, заменяя существующие файлы. Обратите внимание, что эти файлы будут заблокированы пользователем SYSTEM, так что вам придется взять на себя ответственность, и изменить права доступа на них, чтобы быть в состоянии переписать их.

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

Оригинал статьи (eng): http://www.flexlabs.org/2011/02/server-manager-2008-failing-detect-system-status

Размещено в WINDOWS, Windows Server 2008 и отмечено .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.