[帮助] com服务器exe和客户端消费者问题基于启动权限。 [英] [Help] com server exe and client consumer issue based on launch privilege.
问题描述
Hello Everyone,
我遇到了与通过独立的消费者应用程序客户端访问com服务器exe相关的问题。
让我详细解释一下:
如果我通过例如vb6 activex exe项目模式创建一个独立的com exe服务器,客户端通过getobject消费该对象/ createobject。当用户或管理员权限启动时,客户端应用程序可以愉快地链接到已发布的对象。
WorkingConfig.png
当我以管理员模式运行服务器时,客户端从getobject或createobject获取返回代码:Class not registered,HRESULT:0x80040154(REGDB_E_CLASSNOTREG。
NotWorkingConfig.png
非常感谢您提供任何投入。
祝你好运。
MiQi。
我的尝试:
根据研究,我发现了一个修改工具启动特权:
启动特权
这可以通过工具设置:
dcomcfng.exe
我已经尝试过这个解决方案,但没有解决问题,我仍然没有注册课程。
可能是什么原因?如何允许访问对象的权限?
如何通过getobject允许消费者访问公共对象的idspatch引用?
我附上了示例文件以调查我的查询:
vb6exe.zip
OutofProcessCOM.zip
Hello Everyone,
I am in front of an issue related to the access of a com server exe via a standalone consumer application client.
Let me explain you in details:
If I create a standalone com exe server via for example vb6 activex exe project mode and client consuming the object via a getobject / createobject. The client application may link to the published object happily when they are boot running in user or admin privilege.
WorkingConfig.png
When I run the server in admin mode then the client get as return code from getobject or createobject: "Class not registered", HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG.
NotWorkingConfig.png
Thank you very much in advance for any inputs you may have.
Best regards.
MiQi.
What I have tried:
Based on research, I have spotted a tool to modify the launching privilege:
Launching privilege
This can be set via the tool:
dcomcfng.exe
I have tried that solution but did not fix the issue, I am still getting class not registered.
What may be the reason ? How to allow permission to access the object ?
How to proceed to allow the consumer via getobject to access the idspatch reference of the public object ?
I have attached the sample files to investigate my query:
vb6exe.zip
OutofProcessCOM.zip
推荐答案
如果启动一个提升的进程,它将在沙箱中运行,而沙箱中的非提升代码无法获取。
您的两个进程都必须提升或者它们都必须非提升运行。
为什么?安全漏洞。
If you launch an elevated process it is running inside a sandbox where non-elevated code cannot get at it.
Either both of your processes have to run elevated or they both have to run non-elevated.
Why? Security exploits.
这篇关于[帮助] com服务器exe和客户端消费者问题基于启动权限。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!