从*nix在远程Windows机器上执行exe或bat文件

lAH*_*2iV 8 linux windows ant shell

我试图在Linux上的云端远程Windows机器上执行bat文件.bat文件启动selenium服务器,然后运行我的selenium测试.我无法在该机器上启动selenium RC服务器.我尝试使用Telnet,但问题是当telnet会话关闭时,RC服务器端口也被关闭.作为我的代码,我的代码必须启动服务器,所以我尝试使用ANT telnet任务,并以端口关闭的两种方式执行telnet的shell脚本.

我读过Open SSH,psexec for linux和cygwin.但我没有得到如何使用这些,他们将解决我的问题.

我试图启动一个服务,它将启动服务器,但在这种方法中我没有让浏览器可见所有测试都在后台运行,因为我的脚本需要屏幕截图浏览器可见性.

现在我的问题是使用什么,哪个更适合我的工作.什么我选择应该由代码执行它可能是由shell,ant或php.

提前致谢.

Dav*_* W. 15

让我们来看看你提到的各种选择:

  • psexec:这几乎只是PC的一部分.此外,您必须确保较新的Windows计算机可以通过默认设置的UAC.当您尝试执行需要管理员权限的操作时,UAC会一直在Vista和Windows 7上看到.您可以尝试一种名为winexe的东西,这是一个可以执行psexec协议的Linux程序,但是我在使它工作时遇到了问题.
  • OpenSSH:SSH主要有两种,Open SSH是绝大多数网站使用的.SSH比其他方法有几个优点:
    • SSH是安全的:您的网络流量已加密.
    • SSH可以独立于密码:您可以设置SSH以使用私钥/公钥.这样,您甚至不必知道远程服务器上的密码.这使得它更加安全,因为您没有将密码存储在各种系统上.并且,在许多Windows站点中,密码必须每个月左右更改一次,否则帐户将被锁定.
    • SSH不仅可以执行远程命令:SSH上有两个子协议,称为SCP和SFTP.这些允许您在两台计算机之间传输文件.由于他们在工作的SSH,你得到所有的优点SSH包括加密的数据包,公钥/私钥保护.
    • SSH在Unix世界中得到很好的实现:你会发现内置于Ant,Maven和其他构建工具的SSH客户端.像CVS,Subversion和Git这样的程序也可以通过SSH连接工作.不幸的是,Windows World在不同的时空维度上运行.要在Windows系统上使用SSH,需要第三方软件,如Cygwin.
  • Cygwin:Cygwin是一种奇怪的野兽.它是Windows上的一个层,允许许多Unix/GNU库在Windows上运行.它最初是为了让Unix开发人员在Windows DOS系统上运行他们的软件而开发的.但是,Cygwin现在包含一个完整的类Unix系统,包括Perl和Python等工具,BASH shell以及许多实用程序,如SSH服务器.由于Cygwin是开源的,您可以免费下载并运行SSH服务器.不幸的是,我遇到了Cygwin的SSH服务器问题.另一个问题:如果您正在远程运行程序,您可能希望在Windows环境而不是Cygwin环境中运行它们.

我建议你看一下WinSSHD从Bitvise.它是SSH服务器的OpenSSH实现,但它不是开源的.每个许可证大约100美元,您需要在每台服务器上获得许可证.但是,它是一个强大的实现,并具有SSH提供的所有功能.

您可以查看CoSSH,它是Cygwin实用程序和OpenSSH服务器的一个包.这是免费的,并且都是开源的,但如果您想要一种简单的设置方式,则必须支付高级管理员控制台的费用.您不需要高级管理员控制台,因为您可以使用Cygwin设置所有内容,它还附带一个基本控制台来帮助您.


Lee*_*ton 8

我更喜欢使用cygwin并使用SSH然后登录到windows机器来执行命令.请注意,默认情况下,cygwin没有安装OpenSSH.

一旦你在Windows机器上运行SSH,就可以从Linux机器上运行命令,如下所示:

ssh user@windowsmachine 'mycommand.exe'
Run Code Online (Sandbox Code Playgroud)

您还可以设置ssh身份验证密钥,这样您每次都不需要输入密码.