如何创建一个新过程,而没有从管理模式运行的MFC应用程序中的管理特权



我想从MFC应用程序中创建新的过程,在管理模式下运行它在此中,新过程的特权应该较少,以便我可以以更少的特权运行另一个应用程序。如果尝试具有高特权运行,我将无法启动应用程序。这就是为什么我想创建一个新过程它应该具有较少特权的地方,以便我可以启动xxxxxx应用程序(以独立用户模式启动,即没有管理员)没有任何障碍。

更准确地说,让我清楚地向您解释一下情况:我正在尝试使用MFC应用程序的Mapi32.dll的" MapisendMail"发送电子邮件(以"作为管理员"模式运行),Outlook已经以独立用户模式打开。代码以某种方式看起来像mapisendmail_implementation

在上面的链接中,如果我们可以观察到以下片段:

ULONG nSent = lpfnMAPISendMail(0, 0, 
    &MAPImsg, MAPI_LOGON_UI | MAPI_DIALOG, 0);

试图从高特权应用程序(MFC应用程序)访问低特权应用程序(Outlook)时,它正在失败。

谷歌搜索我已经在Microsoft论坛Mapisendmail_msdn中看到了一些帖子,他们建议通过创建一个新的过程来完成所谓的" lpfnmapisendmail",您将能够成功调用该过程。但是我无法理解如何在这个新过程中调用上述功能。

任何人都可以指导我怎么做?

您可以使用createratectionToken创建现有访问令牌的限制版本,并使用createProcessAsuser。

最新更新