Можно ли зарегистрировать, кто запустил или остановил службу Windows?

У меня есть некоторые службы Windows, написанные на С#. Когда кто-то останавливает или запускает службу, я хотел бы иметь возможность определить, кто это был, и записать эту информацию.

Я попробовал logging Environment.UserName, но это оценивает SYSTEM даже на моей локальной машине.

Кроме того, пока эти службы работают на сервере Windows 2000.

Ответы

Ответ 1

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

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

Надеемся, что это приведет вас к вашему решению.

Ответ 3

Вероятно, это не так. Любой из обычных способов .NET, которые вы получаете от пользователя среды, будет возвращать пользователю, чьи учетные данные запускаются службой (обычно это SYSTEM, LOCAL SERVICE, NETWORK SERVICE и т.д.).

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

Ответ 4

  • Просто откройте "Просмотр событий" (меню "Пуск" → "Поиск" ) "Event Viewer придет, откройте его".
  • Разверните "Журнал Windows" в меню слева от просмотра событий.
  • Нажмите "Приложение". (Он покажет вашу ошибку приложения с описанием на вкладке "Общие".
  • Снова попробуйте запустить службу, а из средства просмотра событий посмотрите, что является точной причиной для кратковременного закрытия на вкладке "общий".