答案1
因为您有/RU SYSTEM
。系统帐户是特别帐户并且不像任何用于登录的帐户那样具有 GUI 会话。它是为无人值守服务设计的,即使用户未登录也需要运行。您不能以 身份登录SYSTEM
。
使用记事本作为示例完全掩盖了您的真实需求,但也许(基于评论)您正在尝试构建实际上需要以下架构的东西互动服务使用单独的 GUI 客户端:
- 系统启动时,服务无需 GUI 即可启动。
- 隐藏的 GUI 客户端在登录期间为每个用户会话单独启动。
- 该服务与客户端通信,使其在需要时显示 GUI。
创建一个单独的隐藏 GUI 应用程序并使用 创建进程作为用户函数在交互式用户的上下文中运行应用程序。设计 GUI 应用程序以通过某种进程间通信 (IPC) 方法(例如命名管道)与服务进行通信。服务与 GUI 应用程序进行通信以告知其何时显示 GUI。应用程序将用户交互的结果传回服务,以便服务可以采取适当的操作。请注意,除非您使用适当的访问控制列表 (ACL),否则 IPC 可以通过网络公开您的服务接口。
如果此服务在多用户系统上运行,请将应用程序添加到以下注册表项,以便它在每个会话中运行:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
。如果应用程序使用命名管道进行 IPC,则服务器可以通过根据会话 ID 为每个管道赋予唯一名称来区分多个用户进程。
不要尝试使用 Windows 任务计划程序来实现此目的,而是更好地设计您的软件。