吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 235|回复: 3
上一主题 下一主题
收起左侧

[其他原创] CRT中通过跳板机批量采集设备备份信息,并按照设备名生成日志

[复制链接]
跳转到指定楼层
楼主
cjy11235 发表于 2024-11-21 22:13 回帖奖励
介绍:CRT运行脚本,伴随file.xlsx文件,文件可以采用下面下载使用,自己进行修改。该脚本使用前提是已经登录在跳板机上,使用跳板机登录设备并执行相关命令。
使用场景:有大量交换机或者服务器的情况,最好是进行备份的操作,如果是执行命令,建议还是自己慢慢操作吧,别出问题。

[Visual Basic] 纯文本查看 复制代码
Dim objExcel, objWorkbook, objSheet1, objSheet2, objSheet3, objSheet4

Dim objShell, deviceAddress, deviceType, command

Dim i, j, deviceCount



' 创建 Excel 应用程序对象

Set objExcel = CreateObject("Excel.Application")

objExcel.Visible = False ' 不显示 Excel 窗口



' 打开 Excel 文件

Set objWorkbook = objExcel.Workbooks.Open("F:\caiji\file.xlsx") ' 修改为实际路径,并且路径必须为英文



' 确保工作表名称正确

' 将sheet页重定义为objSheet

Set objSheet1 = objWorkbook.Sheets("Sheet1") ' 确保这里的名称是正确的

Set objSheet2 = objWorkbook.Sheets("Sheet2")

Set objSheet3 = objWorkbook.Sheets("Sheet3")

Set objSheet4 = objWorkbook.Sheets("Sheet4")

Set objSheet5 = objWorkbook.Sheets("Sheet5")

Set objSheet6 = objWorkbook.Sheets("Sheet6")



' 检查 Sheet1 是否存在数据

If objSheet1.UsedRange.Rows.Count < 2 Then

    crt.Session.Send "ERROR" & vbCrLf

End If



' 获取设备数量

deviceCount = objSheet1.UsedRange.Rows.Count



' 遍历每个设备

For i = 2 To deviceCount ' 从第二行开始,假设第一行是标题

    deviceName = objSheet1.Cells(i, 1).Value ' A列是设备名

    deviceAddress = objSheet1.Cells(i, 2).Value ' B列是设备地址

    deviceType = objSheet1.Cells(i, 3).Value ' C列是设备类型

    

    ' 在 CRT 中发送设备地址

    crt.Screen.Send  deviceAddress & vbCrLf

    

    ' 根据设备类型选择命令

    Select Case deviceType

		'设备类型是华为

        Case "Huawei"

            Set objCommands = objSheet2

		'设备类型是华三

        Case "H3C"

            Set objCommands = objSheet3

		'设备类型是锐捷

        Case "RG"

            Set objCommands = objSheet4

		'设备类型是思科

        Case "Cioco"

            Set objCommands = objSheet5

		'设备类型是华为,假设使用跳板机登录时需要选择用户

        Case "Huawei1"

            Set objCommands = objSheet6

        Case Else

            crt.Screen.Send vbCrLf



    End Select



    '初步定义LOG文件名,定义文件名为时间年月日时分秒

    logfilename = (deviceName&".log")

    crt.Session.LogFileName = logfilename

    '开启LOG记录功能

    crt.session.log true



    ' 执行命令

    For j = 2 To objCommands.UsedRange.Rows.Count ' 从第二行开始

        '等待进入设备

        crt.Screen.WaitForStrings "#", ">"
'等待10秒延迟

        crt.Screen.WaitForStrings 10

        '发送一个回车符

        crt.Screen.Send Chr(13)

        crt.Screen.Synchronous = True

        command = objCommands.Cells(j, 1).Value ' 假设命令在第一列

        crt.Screen.Send  command & vbCrLf



        ' 等待三种可能的提示符

        If crt.Screen.WaitForStrings("#", ">", ")", 10) = 0 Then

            crt.Screen.Send  vbCrLf

        Else

            crt.Screen.Send  vbCrLf

        End If



    Next

 





    '等待跳板机提示已经退出设备

    crt.Screen.WaitForStrings "Your Input is:"

   crt.Screen.WaitForStrings 10

    '关闭LOG记录功能

    crt.session.log  false

Next





' 关闭 Excel

objWorkbook.Close False

objExcel.Quit



' 清理对象

Set objSheet1 = Nothing

Set objSheet2 = Nothing

Set objSheet3 = Nothing

Set objSheet4 = Nothing

Set objWorkbook = Nothing

Set objExcel = Nothing



文档下载:https://wweh.lanzouw.com/is2iY2fs84tc

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
chinawolf2000 + 1 + 1 热心回复!
steven2024 + 1 + 1 谢谢@Thanks!
lq20060413 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
steven2024 发表于 2024-11-22 00:23
收藏学习了,谢谢分享
3#
kenkenss 发表于 2024-11-22 08:24
4#
tnancy2kk 发表于 2024-11-22 08:28
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 09:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表