开启telnet服务的脚本代码(1)


Telnet服务的一些内容我们介绍了不少。关于它的基本情况,以及设置内容我们都不再进行赘述了。这里我们主要讲解一下wmi通过135端口开启telnet服务等脚本的实现问题。具体代码如下:

on error resume next
set xsjd=wscript.stdout
if (lcase(right(wscript.fullname,11))="wscript.exe") then
set objShell=wscript.createObject("wscript.shell")
objShell.Run("cmd.exe /k cscript //nologo "&chr(34)&wscript.scriptfullname&chr(34))
wscript.quit
end if
change=wscript.arguments(0)
ip=wscript.arguments(1)
user=wscript.arguments(2)
pass=wscript.arguments(3)
main()
xsjd.write "连接 "&ip&"中 ...."
select case change
case "1"
set objwmi=createobject("wbemscripting.swbemlocator")
set objwmiservices=objwmi.connectserver(ip,"root/cimv2",user,pass)
wscript.echo "您选择的服务是打开目标主机的终端服务."
if wscript.arguments.count<4 then
wscript.echo "没有足够的参数."
wscript.quit
end if
if wscript.arguments.count<4 then
port=3389
else
port=wscript.arguments(4)
end if
if not isnumeric(port) or port<1 or port>65000 then
wscript.echo "端口错误."
wscript.quit
end if
if wscript.arguments.count>5 then
reboot=wscript.arguments(5)
else
reboot=""
end if
objwmiservices.security_.privileges.add 23,true
objwmiservices.security_.privileges.add 18,true
error(err.number)
xsjd.write "检查超作系统类型...."
set objcxwql=objwmiservices.execquery("select caption from win32_operatingsystem")
for each objinstoscaption in objcxwql
if instr(objinstoscaption.caption,"Server")>0 then
wscript.echo "OK!"
else
wscript.echo "超作系统是: "&objinstoscaption.caption
xsjd.write "你确认要结束?[y/n]"
strcancel=instreem.read
if lcase(strcancel)<>"n" then wscript.quit
end if
next
xsjd.write "正在打开服务请稍后 ...."
set objwmiinstreg=objwmi.connectserver(ip,"root/default",user,pass).get("stdregprov")
HKLM=&h80000002
with objwmiinstreg
.createkey ,"SOFTWARE\Microsoft\Windows\CurrentVersion\netcache"
.setdwordvalue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\netcache","Enabled",0
.createkey HKLM,"SOFTWARE\Policies\Microsoft\Windows\Installer"
.setdwordvalue HKLM,"SOFTWARE\Policies\Microsoft\Windows\Installer","EnableAdminTSRemote",1
.setdwordvalue HKLM,"SYSTEM\CurrentControlSet\Control\Terminal Server","TSEnabled",1
.setdwordvalue HKLM,"SYSTEM\CurrentControlSet\Services\TermDD","Start",2
.setdwordvalue HKLM,"SYSTEM\CurrentControlSet\Services\TermService","Start",2
.setstringvalue HKLM,".DEFAULT\Keyboard Layout\Toggle","Hotkey","1"
.setdwordvalue HKLM,"SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp","PortNumber",port
end with
error(err.number)
rebt=lcase(reboot)
if rebt="c" then
xsjd.write "重新启动目标计算机...."
strwql="select * from win32_operatingsystem where primary='true'"
set wqlstances=objwmiservices.execquery(strwql)
for each objinstance in wqlstances
objinstance.win32shutdown(6)
next
error(err.number)
else
wscript.echo "您的帐号需要足够的权限."&vbcrlf&""
end if
wscript.echo "服务打开,,您可以连接终端服务在: "&port&" . 祝您好运!"
wscript.quit
case "2"
if wscript.arguments.count<6 then
wscript.echo "开启telnet服务的参数不够."
wscript.quit
end if
ntlm=wscript.arguments(4)
port=wscript.arguments(5)
if not isnumeric(port) or port<1 or port>65000 then
wscript.echo "端口错误."
wscript.quit
end if
if not isnumeric(ntlm) or ntlm<0 or ntlm>2 then
main()
wscript.echo "NTML终端类型出错."
wscript.quit
end if
set objwmi=createobject("wbemscripting.swbemlocator")
set objwmiservices=objwmi.connectserver(ip,"root/default",user,pass)
error(err.number)
xsjd.write "设置终端类型为:NTLM="&ntlm&"...."
set objwmistance=objwmiservices.get("stdregprov")
set objwmimethod=objwmistance.methods_("SetDWORDvalue")
set objwmiinparam=objwmimethod.inparameters.spawninstance_()
objwmiinparam.hdefkey=&h80000002
objwmiinparam.ssubkeyname="SOFTWARE\Microsoft\TelnetServer\1.0"
objwmiinparam.svaluename="NTLM"
objwmiinparam.uvalue=ntlm
set objwmioutparam=objwmistance.execmethod_("SetDWORDvalue",objwmiinparam)
error(objwmioutparam.returnvalue)

xsjd.write "设定telnet端口: port="&port&"...."
objwmiinparam.svaluename="TelnetPort"
objwmiinparam.uvalue=port
set objwmioutparam=objwmistance.execmethod_("SetDWORDvalue",objwmiinparam)
error(objwmioutparam.returnvalue)


相关内容

    暂无相关文章