windows - 需要一个 Windows 批处理脚本,它将远程登录到服务器并运行命令

标签 windows batch-file

寻找将 telnet 到一个 IP 地址的 Windows 批处理文件,自动提供在批处理文件中指定的用户名和密码,执行一系列命令并退出 telnet。

@echo off
SET username=abc
SET password=xyz@1234
SET servername=192.168.1.40

echo user %username%> telnetcmd.dat
echo %password%>> telnetcmd.dat
echo adbd^& >> telnetcmd.dat
echo exit>> telnetcmd.dat
telnet %servername% < telnetcmd.dat

del telnetcmd.dat

我在这里尝试使用用户名和密码远程登录到 IP。成功登录后,它应该执行 adbc& (这将在后台运行必要的服务)命令和退出命令。 完成此批处理文件后,如果我检查 adbc 服务是否在服务器上运行,它会显示未在服务器上运行

批处理文件完成后得到的输出。

Welcome to Microsoft Telnet Client

Escape Character is 'CTRL+]'


c:\Users\vshah\Desktop>

预期输出:

root@pqrs:/ # ps | grep adbd
shell     31899 31828 1348   148   ffffffff 00013348 S adbd

执行批处理文件后的实际输出:

root@pqrs:/ # ps | grep adbd
1|root@pqrs:/ #

请帮助我实现这个场景。

非常感谢您。

最佳答案

它实际上不是批处理,而是一个vbscript,它使用 sleep ,所以在高延迟情况下,它很容易失败,但我已经使用以下脚本测试通过telnet发送电子邮件

smtpadr = InputBox("SMTP server address", "","192.168.1.35" , 100, 200)
localname = InputBox("SMTP", "","mx01.domain.com" , 100, 200)
emailadr = InputBox("Email address", "","jonbdk@domain.com" , 100, 200)
if smtpadr & "" = "" OR localname & "" = "" OR emailadr & "" = "" then
    wscript.quit
end if

set Shell=CreateObject("WScript.Shell")

Shell.run "cmd /K"
wscript.sleep(1000)
sendkeys ("telnet "&smtpadr&" 25{ENTER}")
wscript.sleep(4000)
'sendkeys ("quit{ENTER}")
sendkeys ("HELO "&localname&"{ENTER}")
wscript.sleep(2000)
sendkeys ("MAIL FROM:<"&emailadr&">{ENTER}")
wscript.sleep(1000)
sendkeys ("RCPT TO:<"&emailadr&">{ENTER}")
wscript.sleep(1000)
sendkeys ("DATA{ENTER}")
wscript.sleep(1000)
sendkeys ("FROM:<"&emailadr&">{ENTER}")
wscript.sleep(100)
sendkeys ("TO:<"&emailadr&">{ENTER}")
wscript.sleep(100)
sendkeys ("Date:16-05-2010{ENTER}")
wscript.sleep(100)
sendkeys ("{ENTER}")
wscript.sleep(100)
sendkeys ("Hello World{ENTER}")
wscript.sleep(100)
sendkeys (".{ENTER}")


function sendkeys (strkeys)
on error resume next
' BACKSPACE {BACKSPACE}, {BS}, or {BKSP} 
' BREAK {BREAK} 
' CAPS LOCK {CAPSLOCK} 
' DEL or DELETE {DELETE} or {DEL} 
' DOWN ARROW {DOWN} 
' END {END} 
' ENTER {ENTER} or ~ 
' ESC {ESC} 
' HELP {HELP} 
' HOME {HOME} 
' INS or INSERT {INSERT} or {INS} 
' LEFT ARROW {LEFT} 
' NUM LOCK {NUMLOCK} 
' PAGE DOWN {PGDN} 
' PAGE UP {PGUP} 
' PRINT SCREEN {PRTSC} 
' RIGHT ARROW {RIGHT} 
' SCROLL LOCK {SCROLLLOCK} 
' TAB {TAB} 
' UP ARROW {UP} 
' F1 {F1} 
  shell.sendkeys(strKeys)
if err.number <> 0 then debug "Failed to sendkeys """ & strkeys &""""
on error goto 0
end function

关于windows - 需要一个 Windows 批处理脚本,它将远程登录到服务器并运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39465836/

相关文章:

windows - 在 Windows 中通过常规文件传输 1-2 兆字节的数据 - 它比通过 RAM 慢吗?

windows - 如何将自定义 displayName 设置为 Jenkins 管道作业?

python - 无法将 Pandas 导入 IPython

windows - 使用 VBS 解压时出错

Python 可执行文件作为 Windows 服务

windows - 通过批处理文件卸载驱动程序

linux - 如何使用 R 将 Raspberry Pi 中存储的文件直接读取到 Window

Windows 资源管理器 - 删除上下文菜单中的条目

windows - 从外部函数批处理返回字符串

batch-file - 将批处理文件添加到 PATH