我正在使用psexec在远程系统中启动一个可执行文件。远程系统是64位,而使用psexec推送的exe是32位。
在运行"psexec“时,我提供了远程系统的管理员凭据,远程进程是使用这些凭据本身创建的。
32位exe在远程系统上运行时,会执行一些操作,然后使用ShellExecute生成另一个可执行文件。
我发现在Windows7上,ShellExecute返回错误代码5(即SE_ERR_ACCESSDENIED)。当目标机器是XP时,整个过程运行良好,ShellExecute成功。
对此有什么想法或变通办法吗?我尝试初始化COM,但没有任何好处。如果需要更多详细信息/代码,请告诉我。
发布于 2013-05-22 17:25:40
我找出了问题所在,实际上ShellExecute正在尝试执行共享位置中的程序。我的猜测是,它无法访问共享,因此访问被拒绝。我改用了CreateProcess(),并确保在尝试执行该进程之前建立了共享连接。这起作用了!
https://stackoverflow.com/questions/16647427
复制相似问题