knife bootstrap windows 2008 x86 静默失败

knife bootstrap silent fail on windows 2008 x86

我在 windows 2008 x86 服务器上使用 knife bootstrap 静默失败。 它创建了 windows 批处理文件,但批处理文件未执行且 return 代码为 0。

版本信息是

knife-windows version:1.4.1 winrm version:1.8.1

在挖掘之后,我想找到了。 on knife-windows源代码lib/chef/knife/winrm_session.rb"relay_command"方法

remote_id = @winrm_session.open_shell
command_id = @winrm_session.run_command(remote_id, command)

=> 这不是 运行 批处理文件。只是退出代码为 0,运行 其他命令正常

@winrm_session.create_executor do |executor|
  executor.run_cmd(cmd) do |stdout, stderr|
     Chef::Log.info(cmdstdout)
     Chef::Log.error(cmdstderr)
  end
end

=> 可以 运行 批处理文件。但这是个坏主意,因为无法获得实时日志

听起来像是 winrm_session run_command 错误。但我不确定。 如何解决这个问题?

谢谢。

已通过 https://github.com/chef/knife-windows/pull/389 修复 所以更新 knife-windows 到最新版本,就可以了。