Нашел я как то в локальной сети сервер, не управляемый SCCM. Не порядок, подумал я и запустил установку клиента SCCM на проблемный сервер с сервера управления. Установка потерпела крах. Процесс ccmsetup.exe запускался и тут же прекарщался. В логe ccmsetup.log первая ошибка была
Could not create WMI locator class (80040154)
Эта ужасная ошибка не давала покоя в течение дней, наверно, десяти, пока я не поборол её.
Вообще сама по себе она говорит, что есть проблемы с WMI, однако всяческие проверки показали, что WMI тут не причем. Оказывается код ошибки 0x80040154 говорит о том, что не зарегистрирован какой-то COM класс, но какой загадка. В поисках ответов нашел, что проблема скорее всего в том, что не работает функция CoCreateInstance или CoCreateInstanceEx, используемые для создания объектов. По этим функциям в поисковике раскопал несколько проблем, которые возникали у людей, в итоге пришёл к тому что необходимо в оснастке comexp.msc поглядеть на объекты COM. И наконец, я наткнулся на ошибку.
С такими показаниями решить проблему оказалось делом техники. Необходимо в свойствах объекта TcCtx. TransactionContext найти значение CLSID. Так как проблема возникала в COM+ Utilities (32 bit), то необходимо искать эти объекты в разделе реестра HKEY_CLASSES_ROOT\Wow6432Node\CLSID. Этих объектов там не было, поэтому я экспортировал ключи HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{5cb66670-d3d4-11cf-acab-00a024a55aef} и HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{7999FC25-D3C6-11CF-ACAB-00A024A55AEF} со здорового компьютера на этот проблемный. В результате первая ошибка в ccmsetup.log исчезла.
Однако, осталась ещё одна ошибка
Failed to get assigned site from AD. Error 0x87d00227
Такую ошибку решить не представляется никакой возможности, поэтому я перешёл к следующему этапу.
На этот раз я скопировал папку, из которой устанавливается клиент на проблемный сервер и запустил локально в итоге получил ошибки
CreateInstance of CLSID_BackgroundCopyManager failed with 80040154. Unable to check BITS version
This operating system does not contain the correct version of BITS. BITS 2.5 or later is required.
Я предпринял попытку восстановить BITS, однако, проблема оказалась не в этом. Пресловутая ошибка 0x80040154. В ходе посиков я раскопал, что объект BackgroundCopyManager входит в интерфейс IBackgroundCopyManager, CLSID которого {5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}, этого раздела не было в том же разделе реестра, в котором не было объекта TcCtx. TransactionContext. По отработаной схеме я экспортировал этот раздел со здоровой машины и импортировал на этот проблемный сервер.
В итоге, клиент SCCM благополучно установился.
PS
Добавлю, что в ходе последующих изысканий было выявлено, что не работают некоторые кнопки и ссылки в интерфейсе Windows и не запускается Internet Explorer 9 32-bit. Оказалось что надо перерегистрировать все dll в папке %windir%\sysWOW64. Скорее всего, перерегистрация всех библиотек помогла бы и в решении пролемы с невозможностью установить клиента SCCM.