Como posso me conectar a um servidor Windows usando uma interface de linha de comando? (CLI)

90

Especialmente com a opção de instalar o Server Core no Server 2008 e superior, conectar-se a servidores Windows por uma CLIcapacidade cada vez mais útil, se não uma que é muito difundida entre os administradores do Windows.

Praticamente todas as GUIferramentas de gerenciamento do Windows têm uma opção para conectar-se a um computador remoto, mas não existe essa opção no Windows interno CLI( cmd.exe), o que dá a impressão inicial de que isso pode não ser possível.

É possível gerenciar remotamente ou administrar um Windows Server usando uma CLI? E se sim, que opções existem para conseguir isso?

HopelessN00b
fonte

Respostas:

102

Existem várias opções bastante fáceis disponíveis para gerenciar remotamente um Windows Server remoto usando uma linha de comando, incluindo algumas opções nativas.

Opções nativas:

  1. WinRS / WinRM

    • A ferramenta Shell / Gerenciamento Remoto do Windows é a maneira mais fácil de gerenciar remotamente um servidor Windows remoto em um utilitário de linha de comando e, como na maioria dos utilitários de linha de comando do Windows, o ss64 possui uma boa página sobre suas opções e sintaxe .
    • Embora não esteja explicitamente declarado na documentação da Microsoft, isso pode ser usado para iniciar uma instância remota de cmd.exe, que cria uma linha de comando interativa no sistema remoto, em vez de uma opção de linha de comando para executar um único comando em um servidor remoto.
      • Como com: winrs -r:myserver.mydomain.tld cmd
    • Essa também é a opção com suporte nativo que provavelmente será mais familiar aos administradores de outros sistemas (* nix BSD, etc.) que são CLIbaseados principalmente .

  2. PowerShell

  3. Área de trabalho remota

    • Provavelmente não é exatamente a primeira coisa que vem à mente como uma CLIopção do Windows , mas é claro que o uso mstsc.exepara conectar-se a um servidor pela Área de Trabalho Remota Protocl ( RDP) permite o uso de uma linha de comando no servidor remoto.
    • Conectar-se a uma instalação Server Core terminada RDP, é realmente possível e fornecerá a mesma interface que a conexão ao console - uma instância de cmd.exe.

Opções populares e não nativas:

Embora o Windows agora ofereça algumas opções nativas para acessar um servidor remoto por um servidor CLI, esse nem sempre foi o caso e, como resultado, várias soluções de terceiros bastante populares foram criadas. Os três mais notáveis ​​estão abaixo.

  1. Instale o SSH no seu Windows Server

    • Se você precisar SSH, também é uma opção e há um guia no social.technet sobre como instalar o OpenSSH no Server 2008.
    • Provavelmente é mais útil para administradores de outros sistemas (* nix, BSDetc.) que fazem uso pesado SSHpara esse fim, embora haja vantagens até mesmo para administradores apenas do Windows por terem um único cliente emulador de terminal (como o PuTTY ) armazenar vários computadores de destino e configurações personalizadas (ou padronizadas) para cada um.

  2. PSExec

    • A opção original para executar comandos remotos em uma caixa do Windows através do Windows CLI, faz parte do excelente conjunto SysInternals . Um dos poucos pacotes "obrigatórios" para administradores do Windows, as ferramentas SysInternals eram tão amplamente respeitadas e usadas que o SyInternals foi comprado pela Microsoft, e agora as ferramentas são oficialmente suportadas pela Microsoft.
    • Assim como com WinRS/ RM, PSExecpode ser usado para emitir comandos únicos para um servidor remoto ou para iniciar uma instância interativa cmd.exeem um computador remoto.
      • Como com: psexec \\myserver.mydomain.tld cmd
    • Como nas outras opções, há etapas que você deve executar primeiro para garantir que o PSExec seja capaz de se conectar à máquina de destino .

  3. Adicione uma pasta de utilitários ao servidor e armazene seu valor na variável de sistema% PATH%

    • Como foi observado nos comentários, há muitos bons programas SysInternals que podem ser executados na linha de comando e direcionados a um sistema remoto, e isso vale mais do que apenas o SysInternals.
    • Basicamente, empacote um pacote de seus utilitários favoritos do Windows em uma pasta que você envia a todos os seus servidores e adicione essa pasta à %PATH%variável ambiental de seus sistemas . Ambos são facilmente executados GPO.
    • Obviamente, isso é útil para mais do que apenas gerenciar sistemas Windows via CLI, mas acho tão útil que acho que vale a pena incluir de qualquer maneira.
HopelessN00b
fonte
6
Não se esqueça dos outros PSTools, como PSList, PSKill, etc. O PSExec é apenas uma pequena parte desse conjunto de ferramentas e a maioria é muito pouco utilizada.
John Gardeniers
4
Eu também acrescentaria que vários utilitários de linha de comando, como shutdowne iisreset(se o IIS estiver instalado), permitem especificar uma máquina para executar e, portanto, podem ser usados ​​remotamente.
18712 Joshua Drake
11
Por que você não mencionou o recurso Telnet Server?
Abatishchev
3
@abatishchev Porque ninguém deve estar executando um servidor de telnet para nada neste dia e idade.
precisa
11
Funciona bem para executar comandos do console quando configurado corretamente e executado em ambiente seguro.
abatishchev
5

Por uma questão de integridade: embora possa não ser a melhor solução por vários motivos, todos os sistemas Windows suportam o serviço Telnet, que pode ser ativado na lista de recursos.

A implementação de telnet da Microsoft também oferece suporte à autenticação NTLM; portanto, diferentemente do telnet padrão para um sistema Unix, nenhuma senha de texto não criptografado é enviada na rede ao usá-lo.

Massimo
fonte
servidor de telnet foi removido no Windows 10
typelogic
use isso somente se nenhuma outra maneira segura for possível. o tráfego ainda deve passar por uma VPN segura
mit