0

我正在使用 psexec 在远程系统中启动可执行文件。远程系统是 64 位的,而使用 psexec 推送的 exe 是 32 位的。

在运行“psexec”时,我提供了远程系统的管理员凭据,并且远程进程是使用这些凭据本身创建的。

32 位 exe 在远程系统上运行时会执行一些操作,然后使用 ShellExecute 生成另一个可执行文件。

我发现在 windows 7 上,ShellExecute 返回错误代码 5(即 SE_ERR_ACCESSDENIED)。当目标机器是XP时,整个过程运行良好,ShellExecute成功。

有相同的想法或解决方法吗?我尝试初始化 COM ,但没有任何好处。如果需要任何进一步的详细信息/代码,请告诉我。

4

1 回答 1

0

我发现了问题,实际上 ShellExecute 正在尝试执行位于共享位置的程序。我的猜测是它无法访问共享,因此拒绝访问。我改用 CreateProcess() 并确保在尝试执行该过程之前建立了共享连接。这行得通!

于 2013-05-22T09:25:39.700 回答