我有一个在后台运行的 Windows 服务,我想在某个时候告诉他从运行对象表中获取对象。
问题是,无论我尝试什么,似乎都无法实现。
它总是在 Windows API 的 GetObject 方法上失败,代码 0x800401E3(操作不可用)失败,就好像对象不存在一样。
在服务中失败的相同代码示例在常规可执行文件中运行良好,因此不太可能出现拼写错误或逻辑错误。
我尝试通过以下方式运行服务:
- 在本地系统帐户上
- 在管理员用户帐户上
- 在本地系统帐户上模拟管理员用户(使用 ImpersonateLoggedOnUser)
- 它们都以相同的方式失败(如上所述,在 GetObject 方法上)
所以我想知道关于运行对象表和 Windows 服务是否存在我不知道的限制(对于可能的安全问题?)。
好吧,如果它可以工作,我会错过什么?除了用户权限之外,是否还有其他东西可以篡改我的服务从运行对象表中查看/检索数据的能力?