Почему служба Windows не сможет получить доступ к таблице запущенных объектов - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть служба Windows, работающая в фоновом режиме, и я хочу в какой-то момент сказать ему, чтобы он получал объекты из таблицы запущенных объектов.

Проблема в том, что это кажется невозможным, что бы я ни пытался.

Всегда происходит сбой в методе GetObject из API Windows, сбой с кодом 0x800401E3 (операция недоступна), как если бы объект не существовал.

  • TheТот же пример кода, который не работает в службе, работает нормально в обычном исполняемом файле, поэтому опечатка или логическая ошибка весьма маловероятны.

  • Я попытался запустить службу следующими способами:

    • В локальной системной учетной записи
    • В локальной учетной записи администратора
    • В локальной системной учетной записи олицетворение пользователя-администратора (с помощью ImpersonateLoggedOnUser)
      • Все они вышли из строя одинаково (как описано выше, для метода GetObject)

Поэтому мне интересно, есть ли ограничения, которые я не знаю в отношенииЗапуск Object Table и служб Windows (для возможных проблем с безопасностью?).

И что ж, если это сработает, чего мне не хватать?Есть ли что-то еще, кроме пользовательских привилегий, которые могут повлиять на способность моего сервиса просматривать / извлекать данные из таблицы запущенных объектов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...