【发布时间】:2016-02-24 13:18:45
【问题描述】:
背景:我需要一个 Windows 服务来识别给定的条件(这是有效的,所以我将忽略它),终止一个进程(我正在工作但不会进入的那个部分详细信息),然后重新启动该过程。
这个进程需要由这个作为LocalSystem运行的windows服务启动,但需要作为用户启动,并且应用程序需要出现在该用户的会话中,以便他们可以继续与之交互。
凭据在文本文件中存储、加密,然后由 Windows 服务读取并与进程一起使用。Start 命令在终止应用程序后启动它。
如果通过我用来配置一些数据以及测试此功能的 Windows 窗体应用程序运行以下代码,则以下代码有效,但当它由作为 LocalSystem 运行的 Windows 服务运行时则无效。
System.Diagnostics.Process.Start("C:\Program Files (x86)\(app folder)\(applicationname).exe", username, SecurePassword, Domain)
当服务试图运行这段代码时,它会抛出一个异常(Access Is Denied);这又由我的应用程序使用 try/catch 语句记录到事件日志中。
我已验证它使用了正确的用户/密码/域;如果我使用了错误的凭据,它会给我一个单独的错误。
【问题讨论】:
标签: vb.net process windows-services restart