Почему служба Windows не сможет получить доступ к таблице запущенных объектов

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

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

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

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

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

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

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

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

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]