简体   繁体   中英

How to make Paramiko use PowerShell by default?

I'm SSHing to a Windows machine with Paramiko and I'm stressed out by how hard it is to write a command because:

  • exec_command runs in cmd prompt console, which has limited functionality so I need PowerShell, meaning I should prefix the command with pwsh -c "the command"
  • However, cmd prompt doesn't support multi-line nor multiple commands naturally, so I need to stick in caret ^ s and && s in the command.
  • Inside the command I'm calling Python with python -c 'print("hello")\nprint("world")' , however I'm already using " for pwsh -c "the command" meaning I need to escape it with backticks `" .

This is fiendishly complex and ugly, the code is a mess, it's Python and PowerShell and cmd prompt special characters intertwined at once. I'm almost 100% sure I'm missing something and there is an easier way to do it hence I'm asking whether Paramiko can run do exec_command in PowerShell by default.

The client (Paramiko) has no control over how the command is interpreted. It's about the server .

Windows Win32-OpenSSH definitely can use PowerShell as the default shell .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM