Использование командной строки для дистанционного администрирования

ИT-специалисты предпочитают управлять системой дистанционно, не вставая из-за своего стола, и не ходить в серверную комнату каждый раз, когда нужно внести какие-нибудь изменения. Многие, возможно, также хотели бы сократить число сеансов Windows 2000 Server Terminal Services, которые приходится открывать всякий раз, когда требуется выполнить в системе определенные задачи или команды. Инструмент Remote Command Service из комплекта Microsoft Windows 2000 Resource Kit, который позволяет осуществлять дистанционное администрирование и выполнять программы командной строки в удаленном режиме, поможет достичь этих целей.

Я работаю с сетью, имеющей более 300 серверов, примерно 40 из которых — серверы Citrix MetaFrame Windows XP. Серверы MetaFrame обладают одинаковыми службами, следовательно, можно сказать, что они идентичны в терминах аппаратного и программного обеспечения, поэтому любые изменения, сделанные на одном сервере, должны быть реплицированы на остальные серверы, что в моем случае означает 40 сеансов Terminal Services или сеансов ICA. Remote Command Service обеспечивает простой и более действенный способ выполнить эти простые задачи. Этот инструмент не сотворит чудо, но поможет дистанционно выполнять множество ежедневных административных задач, которые иначе требуют локальной регистрации в системе. Рассмотрим несколько примеров использования данного средства.

Применение Remote Command Service

Одна из команд, которую я часто использую, Change Logon, позволяет включать и отключать подсоединение пользователей к сеансу Terminal Services. Если установить Change Logon в состояние «отключено», то новые пользователи не смогут устанавливать соединения с сервером. Эту команду можно применять и для того, чтобы определить, какой статус имеет режим пользовательского подключения к сеансу — «включено» или «отключено». Пока я не установил Remote Command Service, каждый раз, когда мне нужно было выполнить обслуживание сервера или закрыть пользователям вход на один или несколько серверов, я должен был регистрироваться и локально запускать Change Logon или устанавливать локально консоль управления Citrix, а затем задействовать графический интерфейс. Процедура была длинной и требовала нескольких шагов для выполнения одной простой задачи. После установки Remote Command Service я смог включать, отключать и опрашивать любой сервер из окна командной строки на своей рабочей станции.

С помощью Remote Command Service также можно получить список файлов в папке на конкретном сервере (т. е. просто команда Dir) и предоставить доступ к папке на данном сервере. Этот инструмент можно использовать совместно с командой Net Share для удаленного подключения к папкам общего доступа. Если требуется подключить сетевой диск на одном или нескольких серверах, то вместо того, чтобы регистрироваться на серверах, можно использовать Remote Command Service с командой Net Use. А еще, если приходится иметь дело с часто используемыми командами и задачами, можно задействовать этот инструмент в сценариях.

Установка и применение

Для того чтобы установить службу и пользоваться ею, следует установить на свой компьютер копию комплекта ресурсов. По умолчанию комплект ресурсов устанавливается в каталог \%systemroot%Program FilesResource Kit, а файлы Remote Command Service хранятся в подкаталоге RCMD. Каталог будет содержать два файла: rcmd.exe — файл, который применяется для запуска клиента командной строки (этот клиент можно скопировать и использовать на любом компьютере, с которого предполагается инициировать команды), и rcmdsvc.exe — серверный компонент, который устанавливается на каждый сервер или рабочую станцию, где будут запускаться команды в удаленном режиме. Файл rcmd.exe создает сеанс командной строки, или «виртуальную консоль», каждый раз, когда клиент подключается к серверу. Можно одновременно подключить на одном компьютере до 10 клиентов к серверу удаленных команд, и все они будут надежно работать независимо друг от друга.

Чтобы установить rcmdsvc.exe, следует зарегистрироваться с учетной записью администратора на компьютере XP, Windows 2000 или Windows NT 4.0, на котором предстоит выполнять команды в удаленном режиме, скопировать файл в папку \%systemroot%winntsystem32 и ввести в командной строке

rcmdsvc -install

Чтобы запустить службу, нужно ввести

net start rcmdsvc

Теперь можно скопировать файл клиента в любое место и начать его использовать. Необходимо открыть командную строку и просмотреть каталог, в котором был сохранен файл rcmd.exe. Далее требуется ввести команду Rcmd. В файлах справки говорится, что команда Rcmd имеет следующие параметры:

rcmd [server_name [command] ]

Хотя такой вид несложен для понимания, он не соответствует традиционным соглашениям о формате, которые Microsoft применяет для утилит командной строки. Вот более простой формат, который можно использовать:

rcmd  

где servername — это имя сервера, на котором должна быть выполнена команда в удаленном режиме, а command — инструмент или утилита, которые требуется выполнить на том сервере, чтобы решить конкретную задачу. Данная команда открывает сеанс командной строки на указанном сервере. Можно также просто ввести

rcmd

в командной строке, после чего появится приглашение указать имя сервера. Следует выйти из этого режима, введя

exit

или нажав Ctrl+Break.

Следующие команды можно использовать для применения вышеупомянутых примеров. (Для выполнения этих команд пользовательским учетным записям потребуется некоторый уровень административных привилегий.)

Коды для включения, отключения и опроса сервера:

rcmd artsvr change logon /disable
rcmd artsvr change logon /enable
rcmd artsvr change logon /query

Запись с командой Net Share для подключения и отключения от ресурса общего доступа:

rcmd artsvr net share sharename=путь к ресурсу
 общего доступа

(например, D:software)

rcmd artsvr net share
 sharename /delete /y

Код для просмотра содержимого каталога на удаленном сервере:

rcmd artsvr dir

Код для назначения буквы сетевого диска ресурсу общего доступа на удаленном сервере:

rcmd artsvr net use x: homersvrsoftware
rcmd artsvr net use x: /delete

Если требуется удалить rcmdsvc.exe с главного сервера, нужно зарегистрироваться на том сервере с учетной записью с правами администратора, открыть командную строку и ввести

rcmdsvc -uninstall

Следующие несколько строк — пример того, как использовать Rcmd в сценариях. В этом сценарии rcmd.exe очищает файлы спулера печати и перезапускает службу Print Spooler.

rcmd artsvr net stop «Print Spooler»
rcmd artsvr del %windir%system32spool
printers*.* /q
rcmd artsvr net start «Print Spooler»

Свобода дистанционного управления

Таким образом, используя службу Remote Command Service, можно больше не запускать сеансы Terminal Services, чтобы выполнять программы из командной строки. Можно даже включать этот инструмент в свои сценарии и создавать расписания, чтобы они выполнялись автоматически, тем самым исключая или минимизируя вмешательство пользователя. Такие инструменты, как Remote Command Service, делают нас на шаг ближе к возможностям полного дистанционного управления и к свободе обеспечивать работоспособность системы практически из любой точки земного шара.

Элиас Кнасер — сетевой инженер в компании General Growth Properties. Имеет сертификаты MCSE, CNNA и CCEA. С ним можно связаться по адресу: elias@cbtnuggets.com