Запустите 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.