c++ - 从应用程序中使用提升的权限调用 win32 服务中的方法

标签 c++ c winapi windows-services

我开发了一个 Win32 C/C++ 应用程序,用于创建动态 WFP IP 过滤器,但是它必须以管理员身份运行才能执行此操作(由于 Windows 安全策略)。我想将需要管理员权限的代码放置在以管理员权限运行的服务中,然后从以普通用户身份运行的应用程序中调用它。

首先这是正确的方法吗?其次,虽然我知道如何创建服务,但我找不到任何说明如何调用服务中的方法/向服务发送请求的引用。

虽然我可能会欺骗并使用 list ,但我不介意额外的工作来正确地完成它,特别是因为该功能可以跨应用程序重用。

有没有人有经验或指点?

最佳答案

拥有一个有权执行所需操作的单独可执行文件当然是正确的方法,以便主应用程序可以在受限用户帐户中运行。至于向服务发送请求,它作为服务运行这一事实没有什么特别的。只需将其视为一个使用管理员用户凭据运行的进程即可。因此,与它进行通信的方式与在任何其他进程到进程情况下的通信方式相同,例如命名管道、网络套接字等。

关于c++ - 从应用程序中使用提升的权限调用 win32 服务中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1574517/

相关文章:

c++ - 插入排序 : What am I doing Wrong?

c++ - Visual C++ 2010 - fatal error LNK1169 : one or more multiply defined symbols found

c - C 程序中的变量段?

c - 单词出现次数和行号

c++ - win32 - 在按钮中使用默认按钮字体

c++ - 是否可以删除应用程序收到的触摸消息(WM_POINTERDOWN 等)?

c++ - C++11 是否允许 vector<const T>?

c - 长度为零的 recv() 有效吗?

c++ - 如何在 C++ 中创建隐藏窗口

winapi - Win32 : Is there a replacement GDI32. 使用硬件加速的dll?