.NET Process.Start()对远程系统上的可执行文件 - 安全警告?

Bre*_*obi 5 c# process

我创建了一个Windows服务,通过WCF从远程机器接受命令.其中一个命令是运行指定的可执行文件(让我们忽略这些功能的安全含义).

在我的服务中,我使用Process.Start()来运行可执行文件.如果可执行文件是计算机本地的,那么一切正常,但如果它位于远程文件共享上,则它会失败并且没有错误(或者更准确地说是挂起).我怀疑问题是它触发了标准的Windows'Unverified Publisher'警告,人们会看到他们是否双击远程系统上的exe.

有什么方法可以绕过我的服务,以便我可以真正运行任何可执行文件?正如我所说,我理解允许它运行任何可执行文件的安全含义,但这正是我所需要的.我本以为这个警告只是一个用户模式的概念,但它确实似乎妨碍了我的服务.

想法?

Ang*_*ker 3

我遇到过同样的问题。您对“未经验证的发布者”警告的看法是正确的。

我的解决方案是将 EXE 本地复制到 %TEMP% 文件夹中,然后从那里启动它。就我而言,这是最佳选择,因为 EXE 没有依赖项。

  • 经过更多的尝试后,我发现了我的案例中真正的问题。我需要设置 StartInfo.UseShellExecute = false; 查看这个问题:http://stackoverflow.com/questions/2790071/starting-a-process-from-a-net-windows-service/2791053#2791053 (3认同)