ShellExecute失败并拒绝访问

时间:2013-05-20 10:23:11

标签: windows winapi psexec

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

我想出了问题,实际上ShellExecute试图执行位于共享位置的程序。我的猜测是它无法访问共享,因此拒绝访问。我使用了CreateProcess(),并确保在尝试执行该过程之前建立了共享连接。这很有效!