AutoIT登录SecureCRT程序代码

AutoIt3 01/06 阅读 3353 views次 人气 632
摘要:

AutoIT自动登录SecureCRT程序代码。

SecureCRT的登录方式比较多样化,如同上次写的远程桌面一样可以使用这种可视化代填的方式登录,因为这个客户端支持从windows命令行直接传入用户名和密码,所以可以使用这种参数传递方式进行登录,与可视化代填登录的区别,最直观的为windows用户看不到代填过程,登录后直接进入到主机。参数传递方式登录比较稳定,成功率较可视化代填有了极大提高。 程序内部说明:1,因为之前写的远程桌面为windows自带的组件,所以在命令行可以直接执行mstsc这样,而SecureCRT是需要用户安装的,所以路径要确定。 2,远程桌面方式是不支持参数传递方式,也就是说不能在windows命令行下进行输入用户名和密码直接登录,而SecureCRT客户端是支持这种方式的,所以采用这种方式进行登录,提高登录成功率。 程序比较简单下面插入代码:
Dim $crtPath
Func SecureCRT()
	;定义变量ip地址,端口,用户名,密码,客户端执行路径,登录协议
	Local $ip,$port,$user,$pass,$path,$sshOrTelnet
	;使用程序传递过来路径,或者写死该路径,绿色版CRT需要写死路径
	$crtPath = "C:\Program Files\VanDyke Software\SecureCRT\SecureCRT.exe"
	;使用程序传递ip,端口,用户名,密码。或者测试写死这些变量
	$ip = "10.242.11.19"
	$port = ""
	$user = "ultrapower"
	$pass = "ultrapower"
	$sshOrTelnet = "ssh"
	If $crtPath == "" Then
		;安装版CRT可以通过注册表方式读取路径
		$crtPath = getCRTPath()
	EndIf
	$path = $crtPath
	;使用CRT登录资源通过ssh或者telnet协议方式,如果主机没有改过这两个协议的端口,那么默认可以不用填
	;正确的参数传递命令行命令为:crtPath /ssh2 ip /p port /l user /password pass,我这里主机ssh协议未改端口,可以不用写/p
	If $sshOrTelnet == "ssh" Then
		$cmd = $crtPath & ' /ssh2 ' & $ip & ' /l ' &  $user & ' /password ' & $pass
	ElseIf $sshOrTelnet = "telnet" Then
		$cmd = $crtPath & ' /telnet ' & $ip & ' /l ' &  $user & ' /password ' & $pass
	Else
		MsgBox(1,"error","登录协议为空,不能正常登录")
	EndIf
	;执行登录
	Run($cmd)
	
EndFunc

;获取CRT的执行文件路径
Func getCRTPath()
	;通过注册表读取CRT的安装路径
	$regPath = RegRead("HKEY_CLASSES_ROOT\telnet\shell\open\command", "")
	If $regPath == "" Then
		MsgBox(1,"Error","未找到 SecureCRT 软件注册信息,请重新安装该软件。")
		Exit(1)
	EndIf
	;注册表读取的路径会带有" %1",这里要分割一下使用前面的路径
	$pathArray = StringSplit($regPath, ' %', 1)
	$clientPath = $pathArray[1]
	;最后返回正确的路径
	Return $clientPath
EndFunc

SecureCRT()
 

评论

该文章不支持评论!

分享到: