在Ruby中访问另一台机器的环境变量

时间:2009-12-30 23:54:09

标签: windows ruby

我正在编写ruby脚本,它访问其他联网机器(windows)上的文件夹。我需要知道该机器上的环境变量,我该怎么做?一旦我访问了远程环境变量,它将帮助我知道软件的安装位置。

由于 N.I

3 个答案:

答案 0 :(得分:2)

您的解决方案是否需要纯Ruby?如果没有,您可以使用PsExec命令。以下将在remote(对于当前用户)输出环境变量:

psexec \\remote cmd /C set

这可以通过远程执行cmd并将命令set传递给它来运行。

以下Ruby代码将运行PsExec并将远程环境变量作为Hash返回:

Hash[*`psexec \\\\remote cmd /C set`.split("\n").
  collect {|i| i.split('=', 2)}.flatten]

答案 1 :(得分:0)

您需要使用帮助程序脚本部署简单的HTTP服务器,该脚本可以打印到您需要的输出流信息(即环境变量等)。 接下来,您必须从远程计算机调用该脚本,并解析结果。

或者,如果没有服务器,请将计划任务添加到远程计算机,每天将一次所需信息写入某个已知文件(我的意思是以固定路径存档)。它更简单,但是你会看到信息的延迟变化。

答案 2 :(得分:0)

我会推荐ruby WMI interface。只要您拥有相当现代的Windows(XP和更高版本的IIRC),就可以轻松地从远程计算机中获取环境变量。 Google for more information