0

我有使用 FileSystemWatcher 并调用相关命令(例如批处理文件)的 C# 服务。其中一个批处理文件需要杀死正在运行的程序,复制一些文件并重新启动程序。Taskkill 用于摆脱程序。

批处理文件被调用,但 taskkill 命令永远不会杀死进程(例如用户打开的 notepad.exe)。如果我只是在以该用户身份登录时运行它,则相同的批处理文件可以工作。

我尝试以登录用户帐户(打开记事本的同一个帐户)身份运行该服务,但无济于事 - 默认为本地系统。

我无法对用户名进行硬编码(但是,我正在考虑模拟配置,但有点不愿意存储用户的密码)。

有什么建议么?

4

2 回答 2

0

running as local service always has the highest privilege, try taskkill /f to force terminate it. however, if still fail, check the error code by %errorlevel%

于 2013-07-02T12:29:46.820 回答
0

也许,值得删除,也许不。本地系统能够使用 taskkill.exe 上的 /F(强制)开关来终止进程

于 2013-07-02T12:23:36.750 回答