subprocess richtig einsetzen
Verfasst: Dienstag 10. März 2020, 11:03
Hallo,
wie setze ich subprocess richtig ein?
Wie hier starte ich plink.exe um dem Passwort-Prompt der remoten Maschine zu erreichen.
....Code Ausschnitt...
if fimodule.pingHost(ip):
args = [p+'\plink.exe','-2','-ssh','-no-antispoof','-x','-l',username,ip,]
ssh = subprocess.Popen(args,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE,
universal_newlines = True)
if xmodule.checkState('Password:',ssh.communicate('\n', timeout=30)
...bisher funktioniert alles super. Mit dem \n in ssh.communicate() wird kein Passwort (nur Return) eingegeben und das remote System ändert den Prompt auf "Enter old Password". Mit dem Modul CheckState wird nur geprüft, ob im stdout der String "Password:" steht.
Dieser nächste Schritt funktioniert nicht mehr als ob die Instanz "ssh" nicht mehr aktiv ist. Im Pycharm Debug ist bei "ssh" der Status von stdout Closed von False nach True gewechselt
if ximodule.checkState('Enter Old Password:',ssh.communicate(Password+'\n', timeout=30)):
Mein Ziel ist, dass ich mit der Shell kommunizieren kann. Habt ihr eine Idee?
Klemens
wie setze ich subprocess richtig ein?
Wie hier starte ich plink.exe um dem Passwort-Prompt der remoten Maschine zu erreichen.
....Code Ausschnitt...
if fimodule.pingHost(ip):
args = [p+'\plink.exe','-2','-ssh','-no-antispoof','-x','-l',username,ip,]
ssh = subprocess.Popen(args,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE,
universal_newlines = True)
if xmodule.checkState('Password:',ssh.communicate('\n', timeout=30)
...bisher funktioniert alles super. Mit dem \n in ssh.communicate() wird kein Passwort (nur Return) eingegeben und das remote System ändert den Prompt auf "Enter old Password". Mit dem Modul CheckState wird nur geprüft, ob im stdout der String "Password:" steht.
Dieser nächste Schritt funktioniert nicht mehr als ob die Instanz "ssh" nicht mehr aktiv ist. Im Pycharm Debug ist bei "ssh" der Status von stdout Closed von False nach True gewechselt
if ximodule.checkState('Enter Old Password:',ssh.communicate(Password+'\n', timeout=30)):
Mein Ziel ist, dass ich mit der Shell kommunizieren kann. Habt ihr eine Idee?
Klemens