Можно ли зарегистрировать, кто запустил или остановил службу Windows?
У меня есть некоторые службы Windows, написанные на С#. Когда кто-то останавливает или запускает службу, я хотел бы иметь возможность определить, кто это был, и записать эту информацию.
Я попробовал logging Environment.UserName
, но это оценивает SYSTEM даже на моей локальной машине.
Кроме того, пока эти службы работают на сервере Windows 2000.
Ответы
Ответ 1
В окне просмотра событий (панель управления | административные средства | средство просмотра событий) на вкладке "Система" отображаются журналы диспетчера служб, которые запускали и останавливали каждое событие. Я только что проверил это сам и посмотрел результаты. Это приводит меня к двум вещам:
- Возможно, вы сможете запросить или связать эти события с диспетчером управления службами, как они есть, или
- Вы можете просто запросить журнал событий "Просмотр системы" для поиска этих событий для своей службы.
Надеемся, что это приведет вас к вашему решению.
Ответ 2
Вы можете включить аудит в соответствии с этой статьей
http://windowsitpro.com/systems-management/access-denied-auditing-users-who-might-be-starting-and-stopping-services
Кроме того, может быть хорошей идеей предупредить электронную почту для себя в методе OnStop().
Ответ 3
Вероятно, это не так. Любой из обычных способов .NET, которые вы получаете от пользователя среды, будет возвращать пользователю, чьи учетные данные запускаются службой (обычно это SYSTEM, LOCAL SERVICE, NETWORK SERVICE и т.д.).
Как бы я мог сделать это, это опросить систему, чтобы узнать, зарегистрирован ли пользователь, и предположите, что пользователь это сделал. Конечно, эти услуги скидок, которые по какой-либо причине закрываются системой (предположительно, ваша служба не будет), и могут помочь вам ограничить ее, если одновременно регистрируется более одного пользователя (но тогда вы могли бы всегда регистрируйте их оба).
Ответ 4
- Просто откройте "Просмотр событий" (меню "Пуск" → "Поиск" ) "Event Viewer придет, откройте его".
- Разверните "Журнал Windows" в меню слева от просмотра событий.
- Нажмите "Приложение". (Он покажет вашу ошибку приложения с описанием на вкладке "Общие".
- Снова попробуйте запустить службу, а из средства просмотра событий посмотрите, что является точной причиной для кратковременного закрытия на вкладке "общий".