Запустите powershell через winexe/psexec

Я пытаюсь подключиться к серверу Windows 2012 из Ubuntu.

winexe --user <USER> --password <SERVER> //SERVER cmd.exe 

работает просто отлично.

Тем не мение,

winexe --user <USER> --password <SERVER> //SERVER powershell.exe`

просто висит.

Он отображает:

Windows PowerShell
Copyright (C) 2012 Microsoft Corporation. All rights reserved.

но после этого он просто зависает и не реагирует на нажатия клавиш.

Есть ли параметр, который мне нужно передать в powershell, чтобы он работал в интерактивном режиме или что-то еще?

РЕДАКТИРОВАТЬ

Если я запускаю указанную выше команду через strace, она, похоже, ждет, пока сервер отправит что-то обратно.

epoll_wait(4, {}, 1, 10)                = 0
epoll_wait(4, {}, 1, 10)                = 0
epoll_wait(4, {}, 1, 10)                = 0

4 ответа

Пытаться

winexe --interactive=1 --user<USER> --password <SERVER> //SERVER powershell.exe

Самый простой способ - запустить команду напрямую, используя одинарные кавычки. Например, перечисление процессов может быть сделано следующим образом:

winexe -U "Domain\PC-Name" //IP Address 'powershell.exe Get-Process'

Powershell кажется "программой Windows Gui", которая пытается взаимодействовать с рабочим столом. Очевидно, что это невозможно, если подключен удаленно (возможно, в Windows XP). Чтобы быть интерактивным и подключить вход PowerShell к стандартному вводу, используйте "-Command -".

Который позволяет PowerShell взаимодействовать с STDIN. Вы можете вводить команды и видеть вывод, но вы не получаете подсказку от powershell.

Winexe звучит довольно устарело и не говорит о поддержке Windows Server 2008 и более новых версий Windows.

PowerShell вышел с открытым исходным кодом, вы можете скачать Ubuntu 14.04 и 16.04 .deb пакеты от GitHub:
https://github.com/PowerShell/PowerShell

После установки вы можете удаленно подключиться к компьютеру под управлением Windows Server 2012 с помощью Enter-PSSession Командлет PowerShell.

Другие вопросы по тегам