规格
Excel 2007,VBA,Avaya CMS Supervisor R16.2
大约2年前,我整理了一些脚本来自动化我们在Avaya中所做的报告。它的运行一直很好,但是这个周末发生了一些奇怪的问题,IT部门要求我们将Avaya中的连接从“网络”切换为“SSH”。 IT部门并没有做出任何改变,只是简单地说这似乎行得通,并且他们认为这只是奇怪的开始。不幸的是,我的脚本不再起作用,我对如何使其与SSH结合使用感到困惑。
Dim cvsApp As New ACSUP.cvsApplication 'acsApp.exe
Dim cvsConn As New ACSCN.cvsConnection 'cvsconn.dll
Dim cvsSrv As New ACSUPSRV.cvsServer 'acsSRV.exe
Dim Rep As New ACSREP.cvsReport 'acsRep.exe
Dim Info As Object, Log As Object, b As Object
Dim InfoOB As Object, LogOB As Object, bOB As Object
cvsApp.CreateServer(UserName, "", "", serverAddress, False, "ENU", cvsSrv, cvsConn)
cvsConn.Login(UserName, passW, serverAddress, "ENU")
这就是我访问Avaya并连接到服务器的脚本的一部分。如果有人对此有任何线索,请与我分享。再次,它与“网络”(端口23)连接正常工作,并且不再与“SSH”(端口22)一起工作。
这些脚本只是挂起,而不是生成任何类型的有用错误。在excel中,它会返回“运行时错误'9':下标超出范围”,这只是一个基本错误,如果无法连接到Avaya提取数据,则会发生此错误。
提前致谢!
最佳答案
在与Avaya进行个人交谈之后,并没有提出任何解决方案,我开始对它进行进一步的处理,以便使报表再次自动化。如果您遇到了同样的问题,这是我达到的解决方案:
由于SSH阻止了我们为Avaya创建进程,因此请先启动进程,然后捕获这些已创建的进程,以解决它。只需手动打开Avaya(Avaya CMS Supervisor的双击图标)并使用您的凭据登录。成功登录后,请最小化Avaya。
现在我们要稍微修改一下脚本:
删除: Dim cvsConn As New ACSCN.cvsConnection
来自:
Dim cvsApp As New ACSUP.cvsApplication 'acsApp.exe`
Dim cvsConn As New ACSCN.cvsConnection 'cvsconn.dll
Dim cvsSrv As New ACSUPSRV.cvsServer 'acsSRV.exe
Dim Rep As New ACSREP.cvsReport 'acsRep.exe
Dim Info As Object, Log As Object, b As Object
Dim InfoOB As Object, LogOB As Object, bOB As Object
替换:
cvsApp.CreateServer(UserName, "", "", serverAddress, False, "ENU", cvsSrv, cvsConn)
cvsConn.Login(UserName, passW, serverAddress, "ENU")
与:
Set cvsSrv = cvsApp.Servers(1)
希望这对大家有所帮助。它应该通过允许您使用已经打开的连接来解决此问题,而不是让脚本在处理报告时在后台创建流程。如果您不忘记先打开Avaya,那么一切都应该顺利进行。