查看: 122|回复: 1

HTA脚本实现远程桌面连接:自定义服务器列表与Mstsc参数详解

[复制链接]
发表于 4 小时前 | 显示全部楼层 |阅读模式
在日常运维中,频繁切换远程桌面连接(RDP)到不同服务器时,每次都手动输入IP或主机名会降低效率。本文分享一个基于HTA(HTML Application)的远程桌面连接脚本,利用VBScript与Mstsc命令实现快速选择服务器并启动全屏连接。该脚本源自myITforum.com社区,经实践验证可直接使用。


  • 脚本功能:通过单选按钮列出多台服务器,点击按钮即可调用系统Mstsc.exe发起全屏远程桌面连接。
  • 适用场景:需要频繁连接固定IP或主机名的Windows服务器,无需额外软件。
  • 技术栈:HTA(HTML Application)、VBScript、Windows自带Mstsc命令。


一、脚本核心代码解析

该脚本的完整HTA代码如下,保存为.CCC.HTA文件即可运行(注意:HTA扩展名需为.hta,原文建议修改为CCC.HTA以区分,实际只需保证扩展名为.hta即可):
  1. <Html>
  2. <Head>
  3. <Title>Remote Desktop Chooser</Title>
  4. <Style>
  5. Body {Background-Color: CornSilk}
  6. </Style>
  7. <HTA:Application Caption = Yes Border = Thick Scroll = No ShowInTaskBar = No MaximizeButton = Yes MinimizeButton = Yes>
  8. <script Language = VBScript>
  9. Sub Window_OnLoad
  10. Window.ResizeTo 400,250
  11. End Sub
  12. Sub WindowsLoad
  13. For Each objButton in RadioOption
  14. If objButton.Checked Then
  15. Set wshShell = CreateObject("WScript.Shell")
  16. WshShell.Run "Mstsc /V " & objButton.Value & " /F"
  17. End If
  18. Next
  19. Self.Close()
  20. End Sub
  21. </script><Body>
  22. <p><h3 align = center><font color='Orange'>Please Visit myITforum.Com</font></h3>
  23. <div></div>
  24. <table align='center'>
  25. <input type="radio" name="172.16.24.100" value="ServerOne">172.16.24.100<BR>
  26. <input type="radio" name="RadioOption" value="ServerTwo">Server Two<BR>
  27. <input type="radio" name="RadioOption" value="ServerThree">Server Three<P>
  28. <input id=runbutton class="button" type="button" value="Run Script" name="run_button" onClick="WindowsLoad">
  29. <Span Id = "DataArea"></Span></Body></html>
复制代码

关键部分说明:

  • HTA声明:<HTA:Application>标签定义了窗口属性,如是否显示标题栏、边框样式、窗口缩放等。
  • Window.OnLoad事件:调整窗口大小为400x250像素。
  • WindowsLoad过程:遍历所有name="RadioOption"的单选按钮,找到被选中的按钮,获取其value值作为目标主机地址,通过WshShell.Run执行Mstsc命令:Mstsc /V [目标地址] /F(/F参数表示全屏模式)。连接后自动关闭HTA窗口(Self.Close())。
  • 单选按钮:name="RadioOption"的按钮用于选择目标服务器,其value属性可以是IP地址或主机名。原文中第一个按钮的名称为"172.16.24.100",但实际匹配的是name="RadioOption",该写法需修正:建议统一所有input的name为"RadioOption",value填写目标地址。原文示例中第一个input的name写成了IP,这可能导致脚本无法正确识别,应改为:<input type="radio" name="RadioOption" value="172.16.24.100">172.16.24.100


二、自定义服务器列表

根据实际环境修改radio按钮即可。每个按钮格式:
<input type="radio" name="RadioOption" value="目标IP或主机名">显示名称

例如,添加两台服务器:
  1. <input type="radio" name="RadioOption" value="192.168.1.10">主服务器
  2. <input type="radio" name="RadioOption" value="WIN-SRV02">备用服务器
复制代码

注意:value中填入的目标地址必须能被Mstsc命令解析,可以是IP地址或域名。显示名称(标签)可自定义为易识别的描述,如“主服务器”、“备份服务器”。

三、Mstsc命令参数补充

Mstsc命令支持多种参数,可在“运行”中输入 mstsc /? 查看完整列表。常用参数:

  • /V:服务器地址:直接连接指定服务器。
  • /F:全屏模式启动。
  • /Admin:远程管理服务器(相当于旧版/Console)。
  • /W:宽度 /H:高度:指定窗口尺寸。
  • /Edit:打开.rdp文件进行编辑。

本脚本中默认使用 /F 全屏,若需调整窗口大小可修改命令,如:WshShell.Run "Mstsc /V " & objButton.Value & " /W:1280 /H:720"

四、注意事项

  • 安全性:HTA脚本可能被某些杀毒软件或浏览器安全策略拦截,请确保来源可信。建议在内网专用工具中使用。
  • 兼容性:适用于Windows系统自带远程桌面客户端(Mstsc.exe),Windows 7及以上版本均支持。
  • 修改后重启:每次修改脚本后,需关闭HTA窗口重新打开才能生效。
  • 错误处理:若选中无对应value的按钮或地址不可达,Mstsc会显示连接失败提示,不会导致脚本崩溃。


五、扩展建议
如果需要连接更多服务器,可增加radio按钮数量,或改用下拉列表框(<select>)实现按需选择。也可添加“服务器分组”功能,通过多个<div>区分不同环境(生产/测试)。对于更复杂的场景,可结合RDP配置文件(.rdp)预先设置分辨率、凭据等。

通过此脚本,运维人员可避免记忆多个IP地址或手动输入,提升远程管理效率。有兴趣的读者可根据实际需求调整界面样式或添加额外参数。
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层

Re: HTA脚本实现远程桌面连接:自定义服务器列表与Mstsc参数详解

感谢楼主分享这个实用的HTA脚本!对于日常需要频繁连接固定服务器的运维人员来说,确实能省去每次手动输入IP的麻烦。脚本结构清晰,用单选按钮选择服务器再加个Run按钮,思路很直接。 尤其点赞你特别指出的那个name属性问题——第一个radio的name写成了IP地址,实际应该统一用“RadioOption”,这个细节对新手很重要,不然脚本可能识别不到。另外,全屏连接参数/F也很实用,减少窗口调整的麻烦。 我自己也经常用类似的小工具,不过习惯把服务器列表写在外部文本文件里,方便维护。不知道楼主有没有考虑过后续版本支持从外部CSV或INI读取列表?那样扩展性会更强。当然当前这种直接改HTML的方式对固定环境已经够用了。 总之,感谢分享,已收藏备用!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-9 14:19 , Processed in 0.026593 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部