【问题标题】:32-bit cluster.exe on 64 bit Windows 200864 位 Windows 2008 上的 32 位 cluster.exe
【发布时间】:2009-11-03 16:20:51
【问题描述】:

我们有一个在 Perl 32 位中运行的安装程序。该程序需要获取有关集群资源的信息,因此它运行 cluster.exe(使用反引号)并解析其输出。

在 Windows Server 2003 上这很顺利,因为 syswow64 下存在 32 位版本的 cluster.exe。但是,Windows Server 2008 上不存在这样的 32 位版本,因此 cluster.exe 的反引号运行表示找不到这样的可执行文件,因为 32 位进程在 syswow64 下查找它。

有人能想出一种方法来绕过这个问题并获取集群资源信息吗? 一种手动方法是从 system32 复制 64 位版本的 cmd.exe,然后使用“/c cluster.exe”运行它,这将在 system32 下启动 64 位 cluster.exe。 (复制 cluster.exe 将无法正常工作,因为它找不到集群缓存。)但是,这仅适用于手动解决方法,而不是适用于所有用户的解决方案。

还有其他方法可以让windows启动64位cluster.exe吗?

谢谢,
分裂者

PS
一个类似的问题是一个月前的asked on technet,但没有得到真正的答案。

【问题讨论】:

  • 属于服务器故障。
  • 嗨,理查德,我没有收到您的评论。请解释一下好吗?

标签: windows cluster-computing wow64


【解决方案1】:

我找到了两种可能的解决方案: 一种是编写一个名为 cluster.exe 的小型 64 位应用程序,它只需调用 %SystemRoot%\System32\cluster.exe(使用 system()),并将其放在 %SystemRoot%\syswow64 下。由于是 64 位应用程序,所以会调用正确的 64 位 cluster.exe 应用程序。

另一种解决方案是使用 sysnative 重定向(如 here 解释的那样),所以现在我们检查 - 如果 %SystemRoot%\System32\cluster.exe 存在,我们使用它,否则如果 % SystemRoot%\Sysnative\cluster.exe 存在我们使用它,否则我们使用普通 cluster.exe。

注意:这与刚刚得到答复的this telnet.exe problem 非常相似。

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 2010-12-15
    • 2012-10-26
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 2011-10-24
    • 2011-12-12
    相关资源
    最近更新 更多