Ruby:检查Windows远程主机中是否安装了程序

时间:2015-02-13 15:15:39

标签: ruby linux windows

我需要测试一系列应用程序是否安装在基于linux / unix的主机和Windows主机中。 很显然,在unix / linux中,像主机一样轻松运行$ which $cmd,如:

    def valid_util?(cmd, user, host, pass)
      begin
        result = nil
        Timeout::timeout(10) do
          Net::SSH.start( host.to_s, user.to_s, :password => pass.to_s) do |ssh|
            result = ssh.exec!(cmd.to_s)
          end
        end
      rescue Timeout::Error
        raise TimeoutError, 'SSH connection timeout!'
      end
      !result.nil?
    end

如何在Windows中实现类似的功能?任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

@skimisha

嗯,也许这种方法会有所帮助:

  • 使用samba从linux连接到Windows(您可以使用ruby/SMB)。
  • 连接后,您可以使用samba浏览服务器,然后根据结果本地断言,如果问题中的应用程序已安装。

但是,如果你的用例有点复杂(例如检查windows注册表等),你必须启动一个命令进行检查(类似于你对linux远程主机的做法),你可以:

  • 使用cygwin在Windows上设置ssh,然后远程执行.bat或.cmd文件。
  • 尝试使用winexe