Я управляю серверами Windows Server 2012. Я изучаю PowerShell для управления этими серверами через командную строку. Моя рабочая станция работает под управлением Ubuntu, и я обычно управляю серверами Linux, подключаясь через SSH.
Есть ли способ использовать Windows PowerShell на серверах Windows с моей рабочей станции Linux через командную строку, например доступ по SSH в Linux?
Некоторые варианты:
http://technet.microsoft.com/en-us/library/hh831611.aspx
Мне не известны какие-либо исполняемые файлы POSH для Linux, поэтому вы не можете запускать команды POSH непосредственно из оболочки в Linux - вы должны сначала каким-то образом попасть на машину Windows, например, RDP, удаленную консоль (DRAC, iLO), SSH, или POSH Web Access.
/ Edit - похоже, есть несколько вариантов. http://sharpcodenotes.blogspot.com/2014/01/running-powershell-commands-from-linux.html
Вы можете попробовать заставить OpenWSMan делать то, что вы хотите, но я думаю, вам придется создавать каждую команду, например URL-запрос, а не просто вводить правильную команду Powershell - как я уже сказал, на самом деле Powershell для Linux не существует. Вы можете установить рубиновый гем WinRB на каждую машину с Windows, а затем запустить код Ruby на вашем компьютере с Linux для вызова команд Powershell.
Ни в том, ни в другом случае не похоже, что вы получите интерактивный опыт Powershell, такой как завершение вкладок, справка и т. Д. Они, похоже, предназначены для запуска сценария или отдельной команды, и вам, вероятно, придется фиксировать любые ошибки или другие отзывы самостоятельно. Вы не получите первоклассного решения для Linux.
/ Edit еще раз - да, MSDN говорит что это будет некрасиво / неуклюже. Даже то простое / эффективное решение, которое он предлагает, не выглядит забавным.
Хотя удаленное взаимодействие Powershell построено на основе WS-Management, на самом деле это протокол внутри протокола, и попытка взаимодействия с PSRP (протокол удаленного взаимодействия Powershell) напрямую потребует репликации Powershell на клиенте.
Microsoft официально выпускает Powershell для Linux и OSX. См. Объявление за август 2016 г .: PowerShell имеет открытый исходный код и доступен в Linux.
В настоящее время он находится в альфа-версии. Официально поддерживаются Ubuntu и Centos, скоро будет больше. Если вы любите приключения, инструкции по установке доступны здесь: https://github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md
Да, у вас есть 2 варианта:
Вы можете установить SSHd-сервер на Windows и в конфигурации указать путь к PowerShell.
Для этого вы можете использовать учебник для установка SSHd и конфигурация Путь к PowerShell.
Коротко:
PowerShell Web Access (только Win Server 2012 R2)
Итак, у вас есть одно руководство по Technet - blogs.technet.com/b/canitpro/archive/2013/11/14/step-by-step-deploy-powershell-web-access.aspx
Протестировано в Ubuntu 14.04 LTS
Скачайте и установите winexe:
wget https://passing-the-hash.googlecode.com/files/winexePTH1.1.0-1.deb
dpkg -i winexePTH1.1.0-1.deb
Основное использование
winexe -U DOMAIN/USERNAME%PASSWORD //MACHINEIP "cmd.exe"
Например:
echo -ne '\n' | winexe -U DOMAIN/USERNAME%PASSWORD //IP 'powershell.exe -command "Get-Process | Select-Object Name, ProcessName"' | sort -u
Вы также можете установить win32-openSSH вручную из https://github.com/PowerShell/Win32-OpenSSH или через Шоколадный https://chocolatey.org или даже быстрее через Boxstarter (который использует под капотом Chocolatey) https://boxstarter.org (быстрая установка https://boxstarter.org/packages/nr/win32-openssh ).
Это требует небольшой настройки, но это собственный (да, на самом деле!) Порт win32, поддерживаемый ребятами из Microsoft, занимающимися PowerShell.
В противном случае, как кто-то упомянул, вы могли бы установить гем WinRM в Linux и получить немного возможности подключения по протоколу WinRM, но это не так хорошо, как просто запустить сеанс PSSession.
Кроме того, разработчики гема WinRM (WinRb) также рассматривают возможность реализации более нативного взаимодействия PowerShell, которое туннелирует PowerShell через WinRM, что будет более функциональным для загрузки и более быстрым для других операций. См. Это сообщение в блоге: http://www.hurryupandwait.io/blog/a-look-under-the-hood-at-powershell-remoting-through-a-ruby-cross-plaform-lens