我有几台服务器,想每隔一段时间连接它们运行程序。但是,为了方便起见,我想编写一个PHP脚本通过远程桌面连接到它们并分别运行它们。这可行吗?如果可以,从哪里开始?一个例子会很好。
我有几台服务器,想每隔一段时间连接它们运行程序。但是,为了方便起见,我想编写一个PHP脚本通过远程桌面连接到它们并分别运行它们。这可行吗?如果可以,从哪里开始?一个例子会很好。
PHP无法使用RDP连接到服务器。它们可以使用SSH或FTP或套接字连接到一个监听端口。
你的要求有些疯狂哦!=)
编辑:
既然你坚持要这样做,那么你需要这样:
[MS-RDPBCGR]: Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification
[MS-RDPCR2]: Remote Desktop Protocol: Composited Remoting V2 Specification
[MS-RDPEA]: Remote Desktop Protocol: Audio Output Virtual Channel Extension
[MS-RDPEAI]: Remote Desktop Protocol: Audio Input Redirection Virtual Channel Extension
[MS-RDPECLIP]: Remote Desktop Protocol: Clipboard Virtual Channel Extension
[MS-RDPEDC]: Remote Desktop Protocol: Desktop Composition Virtual Channel Extension
[MS-RDPEDYC]: Remote Desktop Protocol: Dynamic Channel Virtual Channel Extension
[MS-RDPEFS]: Remote Desktop Protocol: File System Virtual Channel Extension
[MS-RDPEGDI]: Remote Desktop Protocol: Graphics Device Interface (GDI) Acceleration Extensions
[MS-RDPELE]: Remote Desktop Protocol: Licensing Extension
[MS-RDPEMC]: Remote Desktop Protocol: Multiparty Virtual Channel Extension
[MS-RDPEPC]: Remote Desktop Protocol: Print Virtual Channel Extension
[MS-RDPEPNP]: Remote Desktop Protocol: Plug and Play Devices Virtual Channel Extension
[MS-RDPEPS]: Remote Desktop Protocol: Session Selection Extension
[MS-RDPERP]: Remote Desktop Protocol: Remote Programs Virtual Channel Extension
[MS-RDPESC]: Remote Desktop Protocol: Smart Card Virtual Channel Extension
[MS-RDPESP]: Remote Desktop Protocol: Serial and Parallel Port Virtual Channel Extension
[MS-RDPEUSB]: Remote Desktop Protocol: USB Devices Virtual Channel Extension
[MS-RDPEV]: Remote Desktop Protocol: Video Redirection Virtual Channel Extension
[MS-RDPEXPS]: Remote Desktop Protocol: XML Paper Specification (XPS) Print Virtual Channel Extension
[MS-RDPNSC]: Remote Desktop Protocol: NSCodec Extension
[MS-RDPRFX]: Remote Desktop Protocol: RemoteFX Codec Extension
rdesktop -u username -p password 192.168.1.131 -g 1024x640
rdesktop -u username -p password 192.168.1.131 -f
全屏显示。
别忘了用你的详细信息替换用户名和密码。
我认为最好的方式是让服务器运行一个可以连接的服务。例如,它们可以运行一个 Web 服务(例如 PHP,如果这是您想要的语言)。然后,您可以通过端口 80 连接到该 Web 地址,从而运行应用程序。当然,您需要考虑安全问题,但您应该能够配置它们,以便仅接受来自某些 IP 的请求。或者,您可以使脚本受密码保护。
VMware ESXi使用这样的UI页面,但不使用PERL应用程序。阅读答案后,似乎是一个真正的挑战。我正在为我的基于Web的主机访问开发类似的东西。如果我完成了什么,我很乐意与您分享。
人们不建议使用RDP来完成这项任务的原因是因为RDP没有API可以远程执行你实际想要的操作。最简单的方法是在主机上安装下面链接的软件之一,同时需要一个API来连接:
这个:http://www.codeproject.com/KB/system/remoteexec.aspx。在PHP中,你只需要像这样简单的exec("rexec 123.21.61.12 notepad.exe "\fileserver1\test file.txt") (你可以修改它来接受一个密钥用于一点安全性)
TeamViewer(免费):http://www.teamviewer.com/en/products/remotecontrol.aspx 然后你可以使用TeamViewer WebConnect通过PHP连接
OpenVPN(开源),不确定是否附带API,但我不会感到惊讶
Log me in(与上述相同)
在主机上安装WAMP,然后让PHP在主机上运行命令。所以它会像php对php那样,你的客户端会调用类似curl(127.0.0.1/?key=loooong&command=blah)这样的东西,服务器将运行exec("passed command")