Я использовал несколько запросов WMI в Windows8.1x64 для wbemtest.exe, чтобы попытаться выяснить, какой пользователь запустил определенную службу. Те, которые дали мне "это далеко", представлены здесь. Я знаю, что если я сделаю запрос к объекту win32_service, например:

select * from win32_service where name like '%SERVICENAME%'

Я получаю только один результат (сервис, который я ищу), затем дважды щелкаю его, чтобы просмотреть свойства сервиса, и обнаружил, что есть свойство с именем "StartName", которое показывает имя пользователя, который его запустил (это то, что я хочу).

Теперь проблема начинается, когда я делаю:

 select StartName from win32_service where name like '%SERVICENAME%'

Я получаю Win32_Service = <no key>

Даже без предложения where это показывает то же самое. (Но для всех местных служб)

Чего мне не хватает, чтобы заставить его работать правильно?

1 ответ1

1

Это свойство не от того, кто его запустил, а от того, с кого оно должно начинаться, то есть от учетной записи, под которой оно будет работать.

Я думаю, что лучшая ставка для вас здесь - это журнал событий, хотя я думаю, что он покажет вам только те сервисы, которые вошли в состояние остановки и запуска по умолчанию.

Служба обычно запускается под учетной записью SYSTEM, NETWORK SERVICE или другой системной учетной записью, поэтому даже если вы найдете исполняемый процесс, в нем не будет ответа.

Короче, это сложно. Я думаю, что вам может понадобиться изучить функции аудита в Windows. Тот факт, что это служба, означает, что обычно ее запускает система, а не пользователь.

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