Estou com dificuldades para encontrar uma solução para estender uma estrutura projetada para máquinas * nix para o Windows. Atualmente, a estrutura é executada de um servidor * nix e ssh para outros servidores * nix e executa vários comandos diferentes, como verificar arquivos de log, sincronizar arquivos do controle de origem, enviar logs de volta ao controle de origem, etc. preso é como se conectar às máquinas remotas do Windows e acessar a linha de comando. A conexão também pode vir de outra máquina Windows, não precisa ser iniciada em uma máquina unix, pode ir de janelas para janelas em vez de unix para janelas.
Aqui está um exemplo de como os comandos são atualmente executados em sistemas unix. Algo assim está em um loop que percorre uma lista de nomes de servidores. Eu preciso obter algo assim para rodar em máquinas Windows.
ssh ${user}@${server} "cd /app/app_name/logs; <export source control params>; <submit logs to source control>" >> Log.txt
Além disso, eu preferiria não usar uma ferramenta de terceiros (meu orçamento é de aproximadamente US $ 0). Eu verifiquei o PsExec e alguns outros, mas parece que você precisa de acesso de administrador ou precisa passar usuários / passar em texto sem formatação.
Respostas:
Use o Powershell Remoting: https://msdn.microsoft.com/en-us/powershell/scripting/core-powershell/running-remote-commands
Desavergonhadamente copiado e colado:
fonte
Tente tunnellier do Bitvise. Esse é um cliente ssh. Há também um servidor ssh para conectar-se a uma máquina Windows. Os dois permitem que você faça conexões muito seguras, além de coisas mais avançadas, como proxy da Web ou encapsulamento de portas.
fonte
Instale a porta OpenSSH para Windows - é gratuita e fornece cliente e servidor.
fonte
Você pode tentar o psexec, que fornece um shell remoto sobre o serviço de compartilhamento de arquivos (ou como isso é chamado). Há também winexe se você deseja usar o Linux como cliente.
fonte
Eu realmente gosto da idéia do PowerShell, embora a configuração possa demorar alguns minutos no servidor e no cliente.
Além da resposta completa do Shanteva, que sugere o uso do PowerShell, você também deve dar uma olhada aqui no site howtogeek sobre como realmente habilitar (e permitir) uma conexão remota ao servidor PowerShell. Há um pouco de configuração necessária no computador servidor.
Duas coisas importantes que você precisa fazer: (Não preciso mencionar que você precisa fazer todas as configurações 'como administrador', certo? Basta abrir o PowerShell / cmd 'Como administrador')
No computador servidor, abra o PowerShell e execute:
Há também outra maneira de fazer isso. Você pode abrir um prompt de comando e executar:
Pode haver muito mais configurações para mudar. Não há necessidade por enquanto.
Se os dois computadores estiverem no mesmo 'domínio' (um grupo de computadores aos quais todos têm regras e funções diferentes), o procedimento parece simples (não tentei isso).
MAS, como você provavelmente deseja acessar seu servidor pela Internet (tecnicamente chamada de rede WAN), existem algumas complicações e é necessário alterar algumas configurações para permitir a conexão com o servidor remoto. No computador CLIENT, ative o serviço WINRM. O procedimento é semelhante ao que fizemos no servidor acima. Basta executar o comando:
(Novamente, digno de nota! Algumas referências dizem que o computador cliente e o servidor devem estar em redes 'Privadas', ou a coisa toda não funcionará. Estou recebendo mensagens de erro quando executo o comando acima, mas tudo funciona. Não tenho certeza desse fato. Verifique a página da Web mencionada.)
Em seguida, execute no computador CLIENT no PowerShell:
O que significa que o cliente confiará em todos os servidores (hosts). Por fim, execute isso (no CLIENTE novamente, enfatizo):
Você está pronto para ir. Verifique o restante da resposta de Shanteva. No computador CLIENT, execute, por exemplo:
Ele solicitará uma senha e o console remoto será aberto, com a seguinte aparência:
Em seguida, basta digitar comandos como você faz para SSH.
fonte