Как я могу подключиться к серверу Windows, используя интерфейс командной строки? (CLI),

90

Особенно с возможностью установки Server Core в Server 2008 и выше, подключение к серверам Windows через CLIвсе более полезную возможность, если не очень распространенную среди администраторов Windows.

Практически каждый GUIинструмент управления Windows имеет возможность подключиться к удаленному компьютеру, но во встроенной Windows CLI( cmd.exe) такой опции нет , что создает первоначальное впечатление, что это может быть невозможно.

Возможно ли удаленное управление или администрирование Windows Server с помощью интерфейса командной строки? И если да, то какие есть варианты для этого?

HopelessN00b
источник

Ответы:

102

Существует несколько довольно простых опций для удаленного управления удаленным Windows Server с помощью командной строки, включая несколько собственных опций.

Собственные параметры:

  1. WinRS / WinRM

    • Средство удаленной оболочки / управления Windows - это самый простой способ удаленного управления удаленным сервером Windows с помощью утилиты командной строки, и, как и с большинством утилит командной строки Windows, у ss64 есть хорошая страница с опциями и синтаксисом .
    • Хотя это явно не указано в документации Microsoft, это можно использовать для запуска удаленного экземпляра cmd.exe, который создает интерактивную командную строку в удаленной системе, а не в качестве параметра командной строки для выполнения одной команды на удаленном сервере.
      • Как с: winrs -r:myserver.mydomain.tld cmd
    • Это также изначально поддерживаемая опция, которая, вероятно, будет наиболее знакома администраторам других систем (* nix BSDи т. Д.), CLIКоторые в основном базируются .

  2. PowerShell

  3. Удаленного рабочего стола

    • Возможно, это не первое, что приходит на ум в качестве CLIопции Window , но, конечно, использование mstsc.exeсоединения с сервером через Remote Desktop Protocl ( RDP) позволяет использовать командную строку на удаленном сервере.
    • Подключение к установке Server Core закончено RDP, фактически возможно и даст тот же интерфейс, что и подключение к консоли - экземпляр cmd.exe.

Популярные, неродные варианты:

Несмотря на то, что теперь Windows предоставляет несколько встроенных опций для доступа к удаленному серверу через a CLI, это было не всегда так, и в результате было создано несколько довольно популярных решений сторонних производителей. Три наиболее заметных ниже.

  1. Установите SSH на свой Windows Server

    • Если вам просто нужно SSH, это тоже вариант, и на сайте social.technet есть руководство по установке OpenSSH на Server 2008.
    • Вероятно, наиболее полезно для администраторов других систем (* nix BSDи т. Д.), Которые интенсивно используют SSHдля этой цели, хотя даже у администраторов, работающих только на Windows, есть преимущества, когда один клиент эмулятора терминала (например, PuTTY ) хранит несколько целевые компьютеры и индивидуальные (или стандартизированные) настройки для каждого.

  2. Psexec

    • Оригинальная опция для выполнения удаленных команд на Windows-боксе через Windows CLI, это часть превосходного пакета SysInternals . Один из очень немногих «обязательных» пакетов для администраторов Windows, инструменты SysInternals были настолько широко уважаемы и использовались, что SyInternals был выкуплен Microsoft, и инструменты теперь официально поддерживаются Microsoft.
    • Как и с WinRS/ RM, PSExecможно использовать для выдачи отдельных команд на удаленный сервер или для запуска интерактивного экземпляра cmd.exeна удаленном компьютере.
      • Как с: psexec \\myserver.mydomain.tld cmd
    • Как и в случае с другими параметрами, сначала необходимо выполнить шаги, чтобы убедиться, что PSExec действительно может подключиться к целевому компьютеру .

  3. Добавьте папку утилит на сервер и сохраните ее значение в системной переменной% PATH%.

    • Как было отмечено в комментариях, есть много хороших программ SysInternals, которые могут выполняться в командной строке и предназначаться для удаленной системы, и это справедливо не только для SysInternals.
    • По сути, упакуйте пакет ваших любимых утилит Windows в папку, которую вы отправляете на все ваши серверы, и добавьте эту папку в %PATH%переменную среды ваших систем . Оба легко сделаны GPO.
      • (Я включаю SysInternals Suite , PuTTY , WinDirStat и несколько пользовательских сценариев, которые я использую повторно) в папку, которая отправляется на все мои серверы
    • Очевидно, что это полезно не только для управления системами Windows через CLI, но я нахожу это настолько полезным, что я думаю, что в любом случае его стоит включить.
HopelessN00b
источник
6
Не забывайте и о других PSTools, таких как PSList, PSKill и т. Д. PSExec - это только одна небольшая часть этого набора инструментов, и большинство из них очень мало используются.
Джон Гарденье
4
Я также хотел бы добавить, что несколько утилит командной строки, таких как shutdownи iisreset(если IIS установлен), которые позволяют указать машину для выполнения, и, следовательно, могут использоваться удаленно.
Джошуа Дрейк
1
Почему вы не упомянули функцию сервера Telnet?
Абатищев
3
@abatishchev Потому что никто не должен запускать сервер telnet ни для чего в наше время.
HopelessN00b
1
Прекрасно работает для выполнения консольных команд при правильной настройке и запуске в защищенной среде.
Абатищев
5

Просто для полноты: хотя это может быть не лучшим решением по разным причинам, каждая система Windows поддерживает службу Telnet, которую можно включить из списка функций.

Реализация telnet от Microsoft также поддерживает проверку подлинности NTLM, поэтому, в отличие от стандартного telnet для системы Unix, при ее использовании в сеть не передается пароль в виде открытого текста.

Massimo
источник
сервер telnet был удален в Windows 10
typelogic
используйте это, только если никакой другой безопасный способ не возможен. трафик по-прежнему должен проходить через защищенный vpn
мит