【问题标题】:Restrict user to stop a windows service限制用户停止 Windows 服务
【发布时间】:2012-05-11 12:31:39
【问题描述】:

我参与编写 Windows 服务。在我开始写之前,我想知道

  1. LOGIN USERS 需要考虑哪些方面,具体如何限制其他用户“停止服务”?
  2. 编写服务时应考虑哪些一般要点?
  3. 如何在用户尝试停止服务时显示警告警报?

注意:我正在尝试用 C 编写服务。

谢谢。

【问题讨论】:

  • 有关用户的详细信息:我想知道两个用户(普通用户和管理员)的权限。得出的结论是普通用户无法停止服务。我想了解更多有关一旦管理员尝试停止服务时如何显示警告窗口的信息。

标签: c windows winapi service


【解决方案1】:
  1. 普通用户无法停止服务。它需要管理权限。
  2. 您不能执行任何涉及写入屏幕或读取键盘/鼠标的操作。
  3. 您需要编写一个位于后台(隐藏窗口)并通过某种进程间通信方法(RPC/套接字等)与服务通信的应用程序。 应用程序将从显示消息框或以其他方式与用户通信的服务接收消息。

我会尝试用 C# 编写代码(用于服务和应用程序),因为大部分繁重的工作(向 SCM 注册、启动/停止等)已经为您完成。

【讨论】:

  • +1 了解详情。 OP 确实需要发布更多关于所谓用户的信息。
  • 对于#3,服务可以使用MB_SERVICE_NOTIFICATION 标志或WTSSendMessage() 调用MessageBox(),以直接显示一个简单的弹出消息对话框,而无需使用单独的应用程序来处理它服务的代表。但是如果你想自定义对话框,或者显示任何其他类型的 UI,那么是的,需要一个单独的应用程序。
  • 有关用户的详细信息:我想知道两个用户(普通用户和管理员)的权限。得出的结论是普通用户无法停止服务。我想了解更多有关一旦管理员尝试停止服务时如何显示警告窗口的信息。
  • 当服务关闭时,它可以将其传达给正在监视服务的应用程序,该应用程序可以向用户显示一条消息。
猜你喜欢
  • 2014-05-25
  • 2010-10-07
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多