Что определяет, какие службы хостов svchost.exe?

359
user694733

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

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

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

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

0

2 ответа на вопрос

2
David Marshall

В Реестре имеется база данных для контроля загрузки служб. Это база данных 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
Mokubai

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

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

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


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

Понимаю. Предполагая, что я рискну, мне придется создать совершенно нового пользователя сервиса. Но это, вероятно, заслуживает другого вопроса SU. user694733 6 лет назад 0
Да. Я видел, что некоторые программы делают именно это, и в сочетании с разрешениями файловой системы могут создавать службы, которым можно эффективно предоставить область папок, в которой может работать только эта служба. Я бы согласился, что создание сервисов звучит как новый вопрос, но я также подозреваю, что у нас, возможно, уже есть вопрос, детализирующий это. Mokubai 6 лет назад 0