Исправление службы компонентов DCOM

Запросы ошибок:

  1. ошибка DCOM 10016
  2. CLSID {1F87137D-0E7C-44d5-8C73-4EFFB68962F2}, элемент C:\Windows\system32\wbem\wmiprvse.exe, название Microsoft WMI Provider Subsystem Secured Host имеет значение AppID, но не зарегистрирован в \\HKEY_CLASSES_ROOT|AppID. Зарегистрировать его?
  3. Регистрация dcom компонентов {1F87137D-0E7C-44d5-8C73-4EFFB68962F2} appid
  4. регистрация dcom компонентов wmiprvse appid
  5. EventID - Код: 10016, источник: DCOM

SLSID {1F87137D-0E7C-44d5-8C73-4EFFB68962F2}, элемент C:\Windows\system32\wbem\wmiprvse.exe, название Microsoft WMI Provider Subsystem Secured Host имее значение AppID, но не зарегистрирован в \\HKEY_CLASSES_ROOT|AppID. Зарегистрировать его?

Нажмите Win+R и введите dcomcnfg.exe

Далее сморите картинку и сделайте достойный вид под нашу задачу, а именно нужно узнать код компонента.

Теперь запускаем редактор реестра и переходим в раздел:

HKEY_CLASSES_ROOT\AppID\

Ищем свой ключ, в этом случае это два ключа, но мы выберем именно тот на который была ругань - {1F87137D-0E7C-44d5-8C73-4EFFB68962F2}.

Нужно будет переделать пользователей и назначить им права:

Нажмите правой кнопкой и выберите Разрешения
В первой окне нужно нажать Дополнительно

Дальше нужно всех удалить, можно посредством кнопки Удалить.
Если установлена птичка на Наследовать от родительского объекта, можно сразу ее снять и будет предложение удалить всех.

Затем нужно по очереди добавить пользователей вручную.
Нажмите Добавить, появится следующее окно, где нужно нажать Дополнительно.

Включите Поиск и выберете System.

Дальше нужно установить полные права, как на картинке ниже для System.

полные права на system

Дальше с полными правами добавляем:
Администраторы
Network Service

Для Опытные пользователи выставляем права как на картинке ниже
Выбираем Применять: Этот раздел и его подразделы.

Для Пользователи выставляем права как на картинке ниже

При добавлении Создатель дополнительно объявится Ваш пользователь - это админ.
Ваш пользователь - это имя учетной записи. Его нужно удалить кнопкой Удалить.

Тоже самое нужно проделать для одноименной ветки в HKEY_CLASSES_ROOT\CLSID\

Заключение

Стоит проверить следующие ветки на доступность:
HKEY_CLASSES_ROOT\AppID\
{73E709EA-5D93-4B2E-BBB0-99B7938DA9E4}
HKEY_CLASSES_ROOT\CLSID\{73E709EA-5D93-4B2E-BBB0-99B7938DA9E4}

Протестируйте эти ветки в Powershell:
Вводите команды по очереди

New-PSDrive -PSProvider registry -Root HKEY_CLASSES_ROOT -Name HKCR

Get-Acl "HKCR:\CLSID\{73E709EA-5D93-4B2E-BBB0-99B7938DA9E4}"  | Format-List

Get-Acl "HKCR:\AppID\{73E709EA-5D93-4B2E-BBB0-99B7938DA9E4}"  | Format-List

Если в разделе Group:назначен NT AUTHORITY\SYSTEM, то вряд ли что-то нужно менять.

Path   : Microsoft.PowerShell.Core\Registry::HKEY_CLASSES_ROOT\CLSID\{73E709EA-
         5D93-4B2E-BBB0-99B7938DA9E4}
Owner  : BUILTIN\Администраторы
Group  : NT AUTHORITY\SYSTEM
Access : BUILTIN\Пользователи Allow  ReadKey
         BUILTIN\Пользователи Allow  -2147483648
         BUILTIN\Опытные пользователи Allow  SetValue, CreateSubKey, Delete, Re
         adKey
         BUILTIN\Опытные пользователи Allow  -1073676288
         BUILTIN\Администраторы Allow  FullControl
         BUILTIN\Администраторы Allow  268435456
         NT AUTHORITY\SYSTEM Allow  FullControl
         NT AUTHORITY\SYSTEM Allow  268435456
         СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ Allow  268435456
Audit  :
Sddl   : O:BAG:SYD:AI(A;ID;KR;;;BU)(A;CIIOID;GR;;;BU)(A;ID;CCDCLCSWRPSDRC;;;PU)
         (A;CIIOID;SDGWGR;;;PU)(A;ID;KA;;;BA)(A;CIIOID;GA;;;BA)(A;ID;KA;;;SY)(A
         ;CIIOID;GA;;;SY)(A;CIIOID;GA;;;CO)

Какова суть этого материала?

Показать что причина данной ошибки кроется в NT AUTHORITY\SYSTEM
Я добавил NT AUTHORITY\SYSTEM как пользователя, но должно быть - общая группа.
Владельцем могут быть Администраторы, Наследование - не унаследовано.

Как назначить группу на ветку реестра?

Скачайте SubinACL - файл кинуть в папку System32.

1) Создайте BAT-файл Сохранить permission в файл.bat следующего содержания

subinacl.exe /noverbose /outputlog=test.txt /subkeyreg "HKEY_CLASSES_ROOT\AppID\{1F7D1BE9-7A50-40B6-A605-C4F3696F49C0}"
pause

Где {1F7D1BE9-7A50-40B6-A605-C4F3696F49C0}, любой подраздел с "хорошими данными о группе" и PERMISSION в целом(смотрите на рабочей машине).

В этой же папке создастся файл test.txt

2) Откройте файл test.txt и внесите в заголовок ваш больной подраздел и сохраните.

=======================================================================
+KeyReg HKEY_CLASSES_ROOT\AppID\{1F7D1BE9-7A50-40B6-A605-C4F3696F49C0}
=======================================================================
/control=0x1400
/owner             =builtin\Администраторы
/primary group     =system
/audit ace count   =0
/perm. ace count   =5
/pace =system  Type=0x0 Flags=0x2 AccessMask=0xf003f
/pace =builtin\Администраторы  Type=0x0 Flags=0x2 AccessMask=0xf003f
/pace =ОГРАНИЧЕННЫЕ  Type=0x0 Flags=0x2 AccessMask=0x20019
/pace =builtin\Опытные пользователи  Type=0x0 Flags=0x2 AccessMask=0xf003f
/pace =builtin\Пользователи  Type=0x0 Flags=0x2 AccessMask=0xf003f

primary group     =system(NT AUTHORITY) или TrustedInstaller(NT SERVICE), а не Вася подзаборный.

3) Создайте второй BAT-файл Восстановить permission из файла.bat

subinacl.exe /playfile test.txt
pause

Где {1F87137D-0E7C-44d5-8C73-4EFFB68962F2} больной подраздел, который нужно изменить.

4) Запустите второй BAT-файл Восстановить permission из файла.bat

Создайте проверочный тест-файл Подробно о permission в файл.bat:

subinacl.exe /outputlog=description.txt /subkeyreg "HKEY_CLASSES_ROOT\AppID\{1F87137D-0E7C-44d5-8C73-4EFFB68962F2}"
pause

Где {1F87137D-0E7C-44d5-8C73-4EFFB68962F2} ваш вылеченный подраздел.

Если проблемы в кодировке, то файлы лучше сохранять в программе AkelPad -1200 UTF-16 LE или 866 (OEM-русская) и добавьте в реестр следующую запись:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Console]
"CodePage"=dword:00000362

[HKEY_CURRENT_USER\Console\ConEmu]
"FaceName"="Lucida Console"

Как удалить наследование permission

В меню разрешения нажмите кнопку Дополнительно

сброс унаследования

Снимите птичку возле пункта Наследования

Появится следующее окно

сброс унаследования

Здесь нажмите Копировать
Как видите, унаследования исчезли

сброс унаследования

Ставьте птичку на Замена разрешения для дочерних объектов
Нажмите Применить.

Как массово убрать унаследования в реестре?

Создайте батник для вашей ветки реестра, допустим такой:

subinacl.exe /noverbose /outputlog=test.txt /subkeyreg "HKEY_CLASSES_ROOT\AppID"
pause

Запустите его, в той же папке создастся файл test.txt с данными.
Откройте файл удобным блокнотом и ваша задача заменить все значения control=0x400 на  control=0x1400 и Flags=любое значение на Flags=0x0.
Можно это сделать в меню блокнота Заменить "control=0x400" на "control=0x1400"
Заархивируйте файл, сделав его копию на случай возврата
Сохраните файл. Запустите батник 3). Произойдет замена существующих <унаследований> на <неунаследовано>.

Таким образом вы сможете вытворять с реестром любые изменения Permission.
На весь реестр может уйти пол дня, запаситесь терпением для многих веток, содержащих не менее 10000 значений.


Вернемся к нашему ключу CLSID {1F87137D-0E7C-44d5-8C73-4EFFB68962F2}

  • Чтобы ошибка исчезла, нужно удалить из реестра все ключи "по запросу поиска" -
    {1F87137D-0E7C-44d5-8C73-4EFFB68962F2}
  • Затем добавить рабочий экспорт с рабочей машины по адресу:
    HKEY_CLASSES_ROOT\CLSID\{1F87137D-0E7C-44d5-8C73-4EFFB68962F2}
  • Остальные ключи НЕ добавлять!
  • Запускаем %windir%\SYSTEM32\dcomcnfg.exe
  • Переходим снова к Настройка DCOM и регистрируем, что он просит.

 

Категория: Службы и консоли | Добавил: masterov (26.11.2017) | Автор: Андрей Мастеров E W
Просмотров: 155 | Теги: Windows, службы | Рейтинг: 0.0/0
Всего комментариев: 0
avatar