вторник, 29 марта 2016 г.

Настройка сети на удалённом компьютере через командную строку

Подозреваю, что порядочные системные администраторы это всё давно знают и умеют, но я-то не порядочный и бессистемный, так что... Вчера сидел разбирался, как бы мне, не залезая на экран пользователя, поменять настройки сети. И вот что из этого получилось.

Иногда бывает нужно сделать что-то на удалённом компьютере, но так, чтобы не мешать пользователю, не отнимать у него управление компьютером. Одна из таких задач - изменение сетевых параметров. Её вполне возможно выполнить из командной строки, со своего ПК, так что пользователь ничего не увидит на своём экране.

Для этого понадобится иметь на своём компьютере пакет утилит SysinternalsSuite, из которого будет использоваться утилита PsExec, позволяющая запускать процессы на удалённом ПК.

Если SysinternalsSuite до сих пор ещё не было на вашем ПК, то его нужно скачать, распаковать архив, запустить командный интерпретатор Windows cmd, и выполнить несколько команд:

psexec -u Администратор -p password \\192.168.0.15 netsh interface ip set address name="Подключение по локальной сети" source=static addr=192.168.0.15 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1

Значения ключей команды:

  • -u - имя пользователя, от которого будет запускаться команда на удалённом компьютере (Администратор);
  • -p - пароль;
  • \\192.168.0.15 - IP-адрес компьютера, к которому выполняется подключение;
  • netsh interface ip set address - а это уже команда со своими параметрами, которая будет исполняться на удалённом компьютере, установка параметров IP (для Windows 7 вместо netsh interface ip set address будет netsh interface ipv4 set address);
  • name="Подключение по локальной сети" - имя сетевого подключения. Может отличаться от указанного в примере, поэтому надо уточнять. Сделать это можно через Radmin, только выбрать подключение "Telnet". Откроется чёрное окошко с командной строкой, в котором выполнить команду ipconfig /all. Или с помощью того же PsExec: psexec -u Администратор -p password \\192.168.0.15 ipconfig /all
  • source=static - указывает, что будет назначен статический IP-адрес;
  • addr=192.168.0.15 - собственно, IP-адрес;
  • mask=255.255.255.0 - маска;
  • gateway=192.168.0.1 - шлюз;
  • gwmetric=1 - метрика шлюза.


Эта команда не задаёт адреса DNS-серверов. Для добавления/изменения DNS нужно выполнить следующие команды.

Указать DNS-сервер:

psexec -u Администратор -p password \\192.168.0.15 netsh interface ip set dns name="Подключение по локальной сети" source=static addr=77.88.8.88

Добавить ещё один DNS-сервер:

psexec -u Администратор -p password \\192.168.0.15 netsh interface ip add dns name="Подключение по локальной сети" addr=8.8.8.8

пятница, 11 марта 2016 г.

А где у него кнопка?

Обычно я компьютеры и компьютерные проблемы чиню, но сегодня было какое-то такое настроение, что я взял и переметнулся на другую сторону. Но я же не простой пользователь, я, пусть бессистемный, но администратор, я сломал целый сервер! Два раза!

Вообще-то, конечно, ничего такого я не планировал, как оно обычно и бывает. "Я ничего не трогал, оно само". Сервер нужно было срочно перезагрузить, скрипт почему-то (я потом выяснил почему) не сработал, пришлось лезть в командную строку и набирать команды руками. И вот в этот момент торопиться не стоило! Но как же нам не торопиться, не спешить от разных бед? Весь магазин же стоит, все же нервничают, и я вместе с ними. Вот и набрал в команде вместо "/r" (перезагрузка) "/s" (выключение). А компьютер же что? Он железный. Ему сказали выключиться, он выключился. Ну не умеют нынешние компьютеры понимать, что я не то имел в виду! :-)

Второй раз я накосячил, когда попросил сотрудника магазина зайти в серверную и нажать кнопку питания на сервере, чтобы включить его. Да вот только забыл, что он у нас крутится в виртуальной машине. И в результате нажатия кнопки питания вырубился хост, то есть компьютер, на котором эта виртуалка была запущена. Красавчик? Красавчик. Главное, я-то сам до места событий быстро добраться не могу, мне туда пешком с полчаса идти, а покупатели нервничают, администрация нервничает...

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