PsExec 挂起。启动安装程序时出错

PsExec 挂起。启动安装程序时出错

在某些远程计算机上,当我使用 PsExec 运行安装程序(.exe 文件)时,PsExec 会挂起。当我尝试直接从远程计算机(位于 system32 中)运行 PsExec 传输的安装程序时,我收到以下弹出错误消息:

NSIS Error
Error Launching Installer

这似乎只发生在 64 位计算机上,并且只发生在某些安装程序中。然而,在谷歌搜索后,我似乎没有找到解决方案。

此链接告诉我这可能与它在 system32 下运行有关。

奇怪的是,如果我将安装程序从 system32 复制到其他地方(例如我的桌面)并从那里运行它,它就可以起作用!

这里发生了什么?

谢谢

答案1

矛盾的是,在 64 位 Windows 机器上:

  1. c:\windows\wow64\ 包含32 位系統文件。
  2. c:\windows\system32\ 包含64 位系統文件。

当 32 位程序尝试访问 c:\windows\system32\ 时,它会被重定向到 c:\windows\wow64\。这与通过重定向将 32 位程序安装到 c:\program files (x86)\ 目录时发生的情况非常相似。

您可能会发现以下讨论很有帮助: http://forums.shoutcast.com/showthread.php?t=237297

底线:您已经发现了为什么从 system32 运行安装程序从来都不是一个好习惯的众多原因之一。如果在安装完成后不需要安装程序,请考虑将安装程序复制到临时位置并在安装完成后将其删除。如果您希望在每台机器上都保留安装程序,请考虑建立一个安装程序所属的位置(例如 c:\install\program-name)。

如何使用临时位置的示例:

psexec \\target-pc -e -c -f -wc:\windows\temp installer.exe

细节:

  • -e:不加载您的个人资料(加快速度并节省远程电脑上的磁盘空间)
  • -c:复制文件
  • -f:如果已存在同名文件,则覆盖(谨慎使用)
  • -wc:\windows\temp:将工作目录设置为 c:\windows\temp

相关内容