Administración de Windows Powershell desde el terminal de Linux

Gestiono servidores de Windows Server 2012. Estoy aprendiendo PowerShell para administrar estos servidores a través de la línea de comandos. Mi estación de trabajo ejecuta Ubuntu y por lo general gestionar servidores de Linux mediante la conexión a través de SSH.

¿Hay alguna manera de que pueda usar Windows PowerShell en servidores Windows desde mi estación de trabajo Linux a través de la línea de comandos como el acceso SSH en Linux?

Algunas opciones:

  1. Instale un servidor SSH en una máquina Windows, SSH en, ejecute Powershell en la caja de Windows
  2. Ejecute un cliente RDP en Linux, RDP en, ejecute Powershell en el cuadro de Windows
  3. Utilice Powershell Web Access, pulse el servidor de puerta de enlace POSH WA con un navegador, ejecute Powershell a través del navegador

http://technet.microsoft.com/en-us/library/hh831611.aspx

No conozco ninguno de los ejecutables de POSH para Linux, por lo que no se pueden ejecutar comandos POSH directamente desde una shell en Linux; primero debes entrar en la máquina Windows de alguna manera, como RDP, consola remota (DRAC, iLO), SSH, O POSH Web Access.

/ Edit- parece que hay algunas opciones. http://sharpcodenotes.blogspot.com/2014/01/running-powershell-commands-from-linux.html

Usted podría intentar y conseguir OpenWSMan para hacer lo que usted quiere, pero pienso que usted tendría que diseñar cada comando como una petición de la URL algo que apenas emita el comando correcto de Powershell – como dije, no hay Powershell real para Linux. Usted podría instalar la gema de rubí de WinRB en cada máquina de Windows y después ejecutar el código de Ruby en su caja de Linux para llamar comandos de Powershell.

En ninguno de los casos parece que obtendrá la experiencia interactiva de Powershell, como la finalización de tabuladores, la ayuda, etc. Estos parecen ser para ejecutar un script o un solo comando, y presumiblemente tendrá que capturar cualquier error u otra información Por su cuenta. No vas a obtener una solución de primera clase en Linux.

/ Edit otra vez – sí, MSDN dice que esto tenderá a ser feo / clunky. Incluso la solución simple / eficaz que da no parece divertido.

Aunque Powershell remoting se basa en la parte superior de WS-Management, es realmente un protocolo dentro de un protocolo y tratar de interoperar con PSRP (Powershell Remoting Protocol) directamente requeriría esencialmente replicar Powershell en el cliente.

Sí, usted tiene 2 opciones:

  1. Puede instalar el servidor SSHd en Windows y en la configuración de la ruta de acceso a PowerShell.

    Para ello, puede utilizar el tutorial para la instalación de SSHd y la ruta de configuración de PowerShell.

    En breve:

    1. Instalar freeSSHd
    2. Agregar nueva cuenta de usuario y permitir acceso a SSH
    3. Habilitar el puerto SSH en Firewall de Windows
    4. Configurar ruta de acceso a PowerShell.exe
  2. PowerShell Web Access (sólo Win Server 2012 R2)

    Allí tienes un tutorial sobre Technet – blogs.technet.com/b/canitpro/archive/2013/11/14/step-by-step-deploy-powershell-web-access.aspx

Microsoft lanzará oficialmente Powershell en Linux y OSX. Vea el anuncio de agosto de 2016: PowerShell es de código abierto y está disponible en Linux

Actualmente está en alpha. Ubuntu y Centos son oficialmente compatibles, más en el camino. Si eres aventurero, las instrucciones de instalación están disponibles aquí: https://github.com/PowerShell/PowerShell/blob/master/docs/installation/linux.md

Probado en Ubuntu 14.04 LTS

Descargar e instalar winexe:

 wget https://passing-the-hash.googlecode.com/files/winexePTH1.1.0-1.deb dpkg -i winexePTH1.1.0-1.deb 

Uso básico

 winexe -U DOMAIN/USERNAME%PASSWORD //MACHINEIP "cmd.exe" 

Como ejemplo:

 echo -ne '\n' | winexe -U DOMAIN/USERNAME%PASSWORD //IP 'powershell.exe -command "Get-Process | Select-Object Name, ProcessName"' | sort -u 

También puede instalar win32-openSSH a mano desde https://github.com/PowerShell/Win32-OpenSSH oa través de Chocolatey https://chocolatey.org o incluso más rápido a través de Boxstarter (que utiliza Chocolatey bajo el capó) https: // Boxstarter.org (instalación rápida https://boxstarter.org/packages/nr/win32-openssh ).

Se necesita una pequeña configuración, pero es un nativo (sí, por cierto!) Puerto win32 mantenido por los chicos de Microsoft haciendo PowerShell.

De lo contrario, como alguien dijo que podría instalar la gema WinRM en Linux y obtener un poco de conectividad a través del protocolo WinRM, pero eso no es tan agradable como acaba de iniciar una PSSession.

Además, la gente detrás de la gema de WinRM (WinRb) también está buscando implementar una interacción más nativa de PowerShell que canaliza PowerShell sobre WinRM que será más funcional para cargas y más rápido para otras operaciones también. Vea esta entrada del blog, http://www.hurryupandwait.io/blog/a-look-under-the-hood-at-powershell-remoting-through-a-ruby-cross-plaform-len