Gerenciando o Windows Powershell do terminal Linux

27

Eu gerencio os servidores do Windows Server 2012. Estou aprendendo PowerShell para gerenciar esses servidores através da linha de comando. Minha estação de trabalho roda o Ubuntu e eu geralmente gerencio servidores Linux conectando via SSH.

Existe uma maneira de usar o Windows PowerShell em servidores Windows da minha estação de trabalho Linux por meio da linha de comando, como o acesso SSH no Linux?

    
por Ederson 21.10.2014 / 20:33

5 respostas

13

Algumas opções:

  1. Instalar um servidor SSH em uma máquina Windows, SSH em, executar o Powershell na caixa do Windows
  2. Executar um cliente RDP no Linux, RDP em, executar o Powershell na caixa do Windows
  3. Use o Powershell Web Access, acesse o servidor de gateway POSH WA com um navegador, execute o Powershell por meio do navegador

link

Não tenho conhecimento de quaisquer executáveis de POSH para Linux, por isso não é possível executar comandos POSH diretamente de um shell no Linux - você deve primeiro acessar a máquina Windows de alguma forma, como RDP, console remoto (DRAC, iLO) , SSH ou POSH Web Access.

/ Edit- parece que existem algumas opções. link

Você pode tentar fazer o OpenWSMan fazer o que quiser, mas eu acho que você teria que criar todos os comandos como um pedido de URL, em vez de simplesmente emitir o comando Powershell correto - como eu disse, não há um Powershell para Linux. Você pode instalar o ruby gem WinRB em todas as máquinas Windows e depois executar o código Ruby na sua caixa Linux para chamar os comandos do Powershell.

Em nenhum dos casos parece que você terá a experiência interativa do Powershell, como conclusão de tabulação, ajuda, etc. Estes parecem ser para executar um script ou um único comando, e presumivelmente você terá que capturar qualquer erro ou outro feedback por conta própria. Você não obterá uma solução de primeira classe no Linux.

/ Editar novamente - sim, MSDN diz que isso tende a ser feio / desajeitado. Mesmo a solução simples / eficaz que ele oferece não parece divertida.

Although Powershell remoting is built on top of WS-Management, it’s really a protocol within a protocol and trying to interop with PSRP (Powershell Remoting Protocol) directly would essentially require replicating Powershell on the client.

    
por 21.10.2014 / 20:45
5

A Microsoft está oficialmente lançando o Powershell no Linux e no OSX. Veja o anúncio de agosto de 2016: PowerShell está aberto originado e está disponível no Linux

Está atualmente em alfa. O Ubuntu e o Centos são oficialmente suportados, mais a caminho. Se você é ousado, as instruções de instalação estão disponíveis aqui: link

    
por 23.11.2016 / 13:35
3

Sim, você tem duas opções:

  1. Você pode instalar o servidor SSHd no Windows e no conjunto de configurações caminho para o PowerShell.

    Para isso, você pode usar o tutorial instalação do SSHd e configuração caminho do PowerShell.

    Resumindo:

    1. Instalar o freeSSHd
    2. Adicione uma nova conta de usuário e permita o acesso SSH
    3. Ativar porta SSH no Firewall do Windows
    4. Configurar caminho para o PowerShell.exe
  2. Acesso à Web do PowerShell (somente o Windows Server 2012 R2)

    Existe um tutorial sobre Technet - blogs.technet.com/b/canitpro/archive/2013/11/14/step-by-step-deploy-powershell-web-access.aspx

por 21.10.2014 / 20:50
2

Testado no Ubuntu 14.04 LTS

Faça o download e instale o 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 exemplo:

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

Você também pode instalar o win32-openSSH manualmente pelo link ou pelo Chocolatey link ou ainda mais rápido através do Boxstarter (que utiliza o Chocolatey sob o capô) link (instalação rápida link ).

É preciso um pouco de configuração, mas é uma porta win32 nativa (sim, de verdade!) mantida pelos caras da Microsoft que estão fazendo o PowerShell.

Caso contrário, como alguém mencionou, você poderia instalar a gem do WinRM no Linux e obter um pouco de conectividade com o protocolo WinRM, mas isso não é tão bom quanto apenas iniciar uma PSSession.

Além disso, as pessoas por trás da joia WinRM (WinRb) também estão procurando implementar uma interação mais nativa do PowerShell que direcione o PowerShell para o WinRM, o que será mais funcional para uploads e mais rápido para outras operações também. Veja este post, link

    
por 16.06.2016 / 05:57