¿Cómo puedo conectarme a un servidor de Windows usando una interfaz de línea de comandos? (CLI)

90

Especialmente con la opción de instalar Server Core en Server 2008 y versiones posteriores, la conexión a servidores Windows a través de una CLIcapacidad cada vez más útil, si no es que está muy extendida entre los administradores de Windows.

Prácticamente todas GUIlas herramientas de administración de Windows tienen una opción para conectarse a una computadora remota, pero no existe tal opción en el Windows incorporado CLI( cmd.exe), lo que da la impresión inicial de que esto podría no ser posible.

¿Es posible administrar o administrar de forma remota un servidor de Windows utilizando una CLI? Y si es así, ¿qué opciones hay para lograr esto?

HopelessN00b
fuente

Respuestas:

102

Hay varias opciones bastante fáciles disponibles para administrar de forma remota un servidor remoto de Windows utilizando una línea de comando, incluidas algunas opciones nativas.

Opciones nativas:

  1. WinRS / WinRM

    • La herramienta Windows Remote Shell / Management es la forma más fácil de administrar de forma remota un servidor remoto de Windows en una utilidad de línea de comandos y, como con la mayoría de las utilidades de línea de comandos de Windows, ss64 tiene una buena página sobre sus opciones y sintaxis .
    • Aunque no se indica explícitamente en la documentación de Microsoft, esto se puede usar para iniciar una instancia remota de cmd.exe, que crea una línea de comando interactiva en el sistema remoto, en lugar de como una opción de línea de comando para ejecutar un solo comando en un servidor remoto.
      • Al igual que con: winrs -r:myserver.mydomain.tld cmd
    • Esta es también la opción con soporte nativo que probablemente sea más familiar para los administradores de otros sistemas (* nix BSD, etc.) que se basan principalmente CLIen.

  2. Potencia Shell

  3. Escritorio remoto

    • Probablemente no sea exactamente lo primero que se le viene a la mente como una CLIopción de Windows , pero, por supuesto, el uso mstsc.exepara conectarse a un servidor a través del Protocolo de escritorio remoto ( RDP) permite el uso de una línea de comando en el servidor remoto.
    • Conectarse a una instalación Server Server over RDPes realmente posible y proporcionará la misma interfaz que conectarse a la consola, una instancia de cmd.exe.

Opciones populares no nativas:

Aunque Windows ahora ofrece algunas opciones nativas para acceder a un servidor remoto a través de un CLI, este no siempre fue el caso, y como resultado, se crearon una serie de soluciones de terceros bastante populares. Los tres más notables están a continuación.

  1. Instale SSH en su servidor de Windows

    • Si solo debe tener SSH, esa también es una opción, y hay una guía en social.technet sobre cómo instalar OpenSSH en Server 2008.
    • Probablemente sea más útil para los administradores de otros sistemas (* nix, BSDetc.) que hacen un uso intensivo de SSHeste propósito, aunque existen ventajas incluso para los administradores solo de Windows por tener un único cliente de emulador de terminal (como PuTTY ) que almacena una cantidad de computadoras de destino y configuraciones personalizadas (o estandarizadas) para cada una.

  2. PSExec

    • La opción original para ejecutar comandos remotos en un cuadro de Windows a través de Windows CLI, es parte de la excelente suite SysInternals . Uno de los pocos paquetes "imprescindibles" para los administradores de Windows, las herramientas SysInternals fueron tan respetadas y utilizadas que SyInternals fue comprado por Microsoft, y las herramientas ahora son algo oficialmente compatibles con Microsoft.
    • Al igual que con WinRS/ RM, PSExecse puede usar para emitir comandos únicos a un servidor remoto o para iniciar una instancia interactiva cmd.exeen una computadora remota.
      • Al igual que con: psexec \\myserver.mydomain.tld cmd
    • Al igual que con las otras opciones, hay pasos que debe tomar primero para asegurarse de que PSExec realmente pueda conectarse a la máquina de destino .

  3. Agregue una carpeta de utilidades al servidor y almacene su valor en la variable de sistema% PATH%

    • Como se ha señalado en los comentarios, hay muchos buenos programas de SysInternals que pueden ejecutarse en la línea de comando y dirigirse a un sistema remoto, y esto es cierto para algo más que SysInternals.
    • Básicamente, empaquete un paquete de sus utilidades favoritas de Windows en una carpeta que inserte en todos sus servidores y agregue esa carpeta a la %PATH%variable ambiental de sus sistemas . Ambas se hacen fácilmente GPO.
    • Obviamente, esto es útil para algo más que solo administrar sistemas Windows a través de CLI, pero lo encuentro tan útil que creo que vale la pena incluirlo de todos modos.
HopelessN00b
fuente
66
No olvide los otros PSTools, como PSList, PSKill, etc. PSExec es solo una pequeña parte de ese conjunto de herramientas y la mayoría están muy infrautilizados.
John Gardeniers
44
También agregaría que varias utilidades de línea de comando como shutdowny iisreset(si IIS está instalado) que permiten especificar una máquina para ejecutar y, por lo tanto, se pueden usar de forma remota.
Joshua Drake
1
¿Por qué no mencionaste la función del servidor Telnet?
abatishchev
3
@abatishchev Porque nadie debería estar ejecutando un servidor telnet para nada en estos tiempos.
HopelessN00b
1
Funciona bien para ejecutar comandos de consola cuando se configura correctamente y se ejecuta en un entorno seguro.
abatishchev
5

En aras de la exhaustividad: aunque podría no ser la mejor solución por varios motivos, todos los sistemas Windows admiten el servicio Telnet, que se puede habilitar desde la lista de características.

La implementación de telnet de Microsoft también admite la autenticación NTLM, por lo tanto, a diferencia del telnet estándar para un sistema Unix, no se envía una contraseña de texto claro en la red cuando se usa.

Massimo
fuente
el servidor telnet se ha eliminado en Windows 10
typelogic
use esto solo si no hay otra forma segura posible. el tráfico aún debe pasar por una VPN segura
mit