高分求高手牛人解答困惑 - SCM启动的某进程创建WLBS子进程操作远端cluster node 失败

OS:Windows server 2008 / Windows server 2008 r2
IDE:Visual C++ 2005

我有一个程序A,Win32的程序,service的形式,在windows的service control manager中启动。A中调用CreateProcess创建WLBS命令去启动和停止远程的cluster节点。但是无论如何也不能启动或者停止远程节点,可以启动或者停止本地节点。 另外,手动执行wlbs命令是可以启动远程节点的。wlbs服务没有设置密码。

求帮助!

这里的code编辑器不太好,关键codes见我发出的求助帖子:代码连接

该回答引用ChatGPT

这种问题通常涉及到安全性和权限问题。请检查以下几个方面:

  • 服务帐户的权限
    服务需要具有执行WLBS命令的权限。请确保服务帐户具有足够的权限来运行WLBS命令。你可以在服务的属性中查看使用的帐户,并通过在“本地安全策略”中配置用户权限来授予所需的权限。
  • 防火墙和网络访问
    如果服务和WLBS位于不同的计算机上,则需要确保网络访问和防火墙设置正确。请确保端口已打开,并检查是否需要配置任何网络访问控制列表 (ACL)。
  • 程序的命令行参数
    确保程序A正确设置了WLBS命令行参数。请参阅WLBS文档以了解正确的命令行参数设置。
  • 调用CreateProcess的方式
    确保使用CreateProcess调用WLBS命令时,正确设置了lpApplicationName参数,同时也需要设置lpCommandLine参数以包含WLBS命令行参数。如果你使用CreateProcessAsUser,则需要确保使用正确的用户帐户和令牌。
  • 配置WLBS
    如果以上所有步骤都没有解决问题,则需要检查WLBS的配置。确保WLBS已正确安装,并且集群配置正确。建议在WLBS上启用日志记录,以便在发生错误时记录详细信息。

最后,建议在程序A中添加详细的错误处理和日志记录,以便更好地调试问题。