我正在使用psexec在远程系统中启动可执行文件。远程系统是64位,而使用psexec推送的exe是32位。
在运行“psexec”时,我提供远程系统的管理员凭据,并使用这些凭据本身创建远程进程。
32位exe在远程系统上运行时会执行一些操作,然后使用ShellExecute生成另一个可执行文件。
我发现在Windows 7上,ShellExecute返回错误代码5(即SE_ERR_ACCESSDENIED)。当目标机器是XP时,整个过程运行良好,ShellExecute成功。
同样的想法或解决方法?我尝试初始化COM,但没有任何好处。 如果需要任何进一步的细节/代码,请告诉我。
答案 0 :(得分:0)
我想出了问题,实际上ShellExecute试图执行位于共享位置的程序。我的猜测是它无法访问共享,因此拒绝访问。我使用了CreateProcess(),并确保在尝试执行该过程之前建立了共享连接。这很有效!