#python #python-2.7 #powershell #ssh
#python #python-2.7 #powershell #ssh
Вопрос:
Я пытался использовать PowerShell на удаленном компьютере с Windows 10, используя SSH, чтобы свернуть все окна. Это то, что я пробовал:
hostname = MYHOST
username = MYUSER
password = MYPASSWORD
ssh = paramiko.SSHClient()
ssh.connect(hostname=hostname, username=username, password=password)
command = 'powershell (New-Object -ComObject "Shell.Application").MinimizeAll()'
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(command, timeout=30)
Однако это ничего не возвращает и не выполняет задачу на удаленном компьютере.
Эта команда работает на моем компьютере, когда я запускаю ее с помощью подпроцесса.Popen
Кто-нибудь может помочь? Я также открыт для других предложений, не обязательно PowerShell, я просто подумал, что это должен быть лучший вариант.
Редактировать: если это поможет, я также попытался обойти политику выполнения, на случай, если это помешает мне работать с удаленного компьютера, поэтому я сделал это: (опять же, локальная работа, но удаленная, не работает)
ssh_client.execute_command('powershell -ExecutionPolicy Bypass -command "amp; { $x = New-Object -ComObject Shell.Application; $x.minimizeall() }"')
Комментарии:
1. То, с чем я сталкивался раньше, и, возможно, стоит изучить, заключается в том, что ssh с Windows не предоставляет вам доступ к рабочему столу, поэтому команды, которые работают в вашей локальной системе, не будут работать через ssh. Например, вы не можете делать скриншоты или создавать события клавиатуры. Возможно, это тот случай.
2. Спасибо. Я также думал о запуске скрипта с удаленного, таким образом, скрипт будет локальным и сможет выполнить эту задачу. Я мог бы загрузить скрипт на удаленный компьютер через ssh, когда мне это нужно. Но я все же предпочитаю избегать использования этого метода сценария.
3. Вы запускаете скрипт от имени пользователя, который вошел в систему?
4. @doug-maurer, имя пользователя моего компьютера и имя пользователя удаленного компьютера разные, если вы об этом спрашивали. Я могу запускать другие простые команды PowerShell на удаленном компьютере.
5. Выполнение команд на удаленном компьютере и взаимодействие с сеансом интерактивного входа в систему — это две совершенно разные вещи. Если вы хотите открыть что-либо в этом сеансе, вам нужно будет работать от имени этого пользователя.