При просмотре процессов в Process Explorer, есть services.exe, который имеет несколько подпроцессов svchost.exe . Каждый из этих хостов содержит один или несколько сервисов. Однако выбор услуг в одном процессе кажется совершенно случайным.

Как процесс выбирает, какие сервисы он размещает? Может ли это как-то повлиять?

Я не могу найти какие-либо элементы управления для этого в services.msc.

Я хотел бы навязать некоторые услуги своим собственным процессам, отделенным от других.

2 ответа2

2

В Реестре имеется база данных для контроля загрузки служб. Это база данных Service Control Manager.

Диспетчер управления службами запускает services.exe. Службы определяются в реестре по адресу HKLM\SYSTEM\CurrentControlSet\Services. Значение Type записи службы указывает, загружается ли она в своем собственном процессе или в процессе, в котором размещены несколько служб.

Когда SCM решает запустить службу, он вызывает ScStartService. ScStartService определяет имя файла, который запускает процесс службы, считывая значение ImagePath из раздела реестра службы. Значение ImagePath также содержит имя группы. Затем он проверяет значение Type . Значение 0x20 указывает на общий процесс.

Чтобы ответить на ваш вопрос о том, как заставить службу работать в своем собственном процессе, используйте команду sc config .

Пример: sc config wuauserv type= own Пробел после = обязателен.

Technet

Источник

1

Вы не найдете элементы управления в services.msc, но каждая служба будет запущена под определенной учетной записью пользователя / службы, которая имеет определенные права в зависимости от требований службы.

Колонка "Войти как" на панели управления службами покажет вам, какая учетная запись службы используется для определенных служб. Вы заметите, что каждый svchost.exe в диспетчере задач, похоже, принадлежит другой учетной записи пользователя.

Именно эти учетные записи будут определять, какой svchost.exe размещает каждый сервис.


Технически, есть элементы управления для изменения того, что svchost.exe размещает на конкретной службе, так как вы можете изменить пользователя, который входит в систему, как на вкладке "Вход" в свойствах службы. Я бы не советовал менять их, так как вы можете получить службы, запущенные в неправильном порядке или без необходимых им прав.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .