Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: cmd - входящий поток данных
     
    
Добавлено: 21.01.10 14:21
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 minimax_07
      
       
  
Доброго всем дня. Задача у меня не сложная - по telnet подключиться к cisco и войти в привилегированный режим. Сдесь проблем нет.
 
    
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 500
WshShell.SendKeys "telnet 168.16.2.1"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 500
WshShell.SendKeys "cisco"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 100
WshShell.SendKeys "cisco"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 1500
WshShell.SendKeys "en"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 1500
WshShell.SendKeys "cisco"
WshShell.SendKeys "{ENTER}"
Но указанного интервала может не хватить и тогда получается, что от коммутатора запрос на следующее действие прийти не успел, а из cmd уже отправляется следующая команда и все работает не корректно. Можно конечно увеличить интервал времени, но хотелось бы реализовать такой алгоритм-команда на коммутатор отправляется только тогда, когда получен от него определенный набор символов, например, пароль отправляется после получения cmd запроса на пароль "Password: ". Но я не могу сделать это при помощи считывания данных из входящего потока в cmd или исходящего из cmd на дисплей при помощи методов WScript StdIn и StdOut, т.к. не могу переназначить дескриптор, используемый по умолчанию (для StdIn это 0, т.е. ввод с клавиатуры). Подскажите, пожалуйста, как решить проблемку. Заранее спасибо.
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 3
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 Шпион
![]()
ICQ: 250543104 
Вопросов: 13
Ответов: 118
      
 Профиль |  | #1
       
Добавлено:  26.01.10 07:16
       
    
       
  
а может попробовать вариант через winsock?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Smith
![]()
![]()
![]()
![]()
ICQ: adamis@list.ru 
Вопросов: 153
Ответов: 3632
      
 Профиль |  | #2
       
Добавлено:  26.01.10 11:52
       
    
       
  
Теоретически возможно всё, а кто-нибудь уже пробовал такое сделать?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 MegaGyry
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
ICQ: 418384979 
Вопросов: 1
Ответов: 10
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  01.02.10 13:44
       
    
       
  
вроде бы - обозначает в команде cmd входящие на stdin данные