Pythonista wrote: > Hello There: > > I am using Python 2.7.6 and Paramiko module (on a Linux server) to connect > to a Windows server and send some commands and get output. I have a > connect function which takes IP, username and password of the remote > Windows server and I get an sshobj when that happens. How do I use it to > send remote calls is my question? > > If it were a local system, I would just say "os.system" but not sure about > the remote calls. Can someone help? > > My code looks like below: sys.path.append("/home/me/code") > > import libs.ssh_connect as ssh > ssh_obj = ssh.new_conn(IP, username, password) > > stdin, stdout, stderr = ssh_obj.exec_command("dir") #since the remote > system I am SSHing into is Windows. > > my "new_conn" looks like this: > > import paramiko > def new_conn(IP, username, password): > ssh_obj = paramiko.SSHClient() > ssh_conn.set_missing_host_key_policy(paramiko.AutoAddPolicy()) > ssh_conn.connect(IP, username, password), timeout=30) > return ssh_obj > > > if I replaced "dir" with "ipconfig" it works fine. I wonder how I can make > "dir" work - or for that matter.. with "cd /path/to/dir"?
dir is an internal command of the windows shell. Try ssh_obj.exec_command("cmd /c dir") This will execute the dir command and then close the shell. cd is also internal, but I don't think it makes sense to invoke it and then close the shell... > I know for paramiko's ssh connection to work, i need cygwin installed on a > Windows. Objective is to run commands remotely from a Linux to a Windows > server and then process the output again on Linux server or on Windows > itself. > > I am confused because, "ipconfig" sent from Linux to Windows using > "ssh_obj.exec_command("ipconfig")" works but not > "ssh_obj.exec_command("dir")" - tried giving the path like "cd > C:\Users\Administrator" for cmd or "cd C:" followed by "cd > Users/Administrator" like in Cygwin. Neither of them work. -- https://mail.python.org/mailman/listinfo/python-list