09.07.2013

Сила командной строки. Вводная.

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

Для юных админов сразу хочется сделать мотивационный пинок: не бойтесь cmd! Это ваш лучший друг и соратник. Понимаю, что при первом запуске cmd вам очень страшно и бегут какие-то непонятные буквоцифры и Морфеуса нет рядом. К этому быстро привыкаешь, и потом уже паникуешь, когда cmd не свернут в панель задач. А чтобы прокачать скилы и убить страх - ставьте Linux без графической оболочки! А ещё можно запустить tracert ya.ru и с умным видом говорить начальнику, что тестируешь производительность сетевой подсистемы южного моста виртуального сервера баз данных, запущенного в облаке.

Интерпретатор командной строки cmd запускается из меню Стандартные или набором волшебных трёх букв (угадайте каких!) в строке Выполнить. Откроется черное окошко с белым приглашением. Вся это красотень настраивается как душе угодно, но сейчас не об этом.

Перейдем к командам. Про ping писать не буду - и так все знают. Скажу лишь, что при добавлении к команде символов /? можно узнать много нового.


Команды для работы с сетью

ipconfig /all - позволяет узнать сетевые настройки: MAC сетевушки, IP-адрес, адреса шлюза и DNS серверов.
ipconfig /flushdns - очищает кэш DNS. При подозрениях на проблемы в работе DNS, первым делом запускайте эту команду.
ipconfig /renew - обновляет настройки сетевого адаптера с DHCP-сервера.

netstat - отображение статистики TCP/IP и текущих сетевых подключений. Имеет множество параметров.
netstat -a - отображает все подключения и ожидающие порты.
netstat -b - отображает процесс, ответственный за открытый порт
netstat -p TCP - выводит данные только по TCP. То же самое есть по UDP и TCPv6, UDPv6.
netstat -r - выводит таблицу маршрутизации.
Я чаще всего пишу так netstat -an | findstr :80. Тут мы получаем список всех соединений с/на порт 80. И если они есть, следующим запросом можно уже поискать какая программа пытается соединиться netstat -anb.

arp -a - отображение таблицы преобразования IP-адреса в MAC. Полезно, когда нужно узнать MAC удаленного компьютера по его IP или наоборот.

nslookup - проверяет соответствие IP-адреса DNS-имени. Используется при определении неисправностей системы DNS.

Ещё существует целый отдельный шелл для работы с сетью. Он так и зовется netsh (net shell). Его возможности огромны. Приведу лишь наиболее используемое.

netsh winsock reset - сброс сокета. Т.е. мягкий сброс всех сетевых настроек. О более жестком сбросе здесь.

netsh позволяет детально настроить сетевую конфигурацию или посмотреть определенные значения, даже недоступные в графическом интерфейсе. За более подробной информацией предлагаю обратиться к встроенной справке (netsh /?).

Семейство утилит net позволяет подключать/отключать сетевые диски (net use), расшаривать ресурсы (net share), просматривать расшаренные ресурсы в сети (net view). Последняя команда помогает при непонятных проблемах с подключением к общим папкам - можно увидеть конкретную ошибку, которую не показывает GUI. Утилиты net позволяют работать не только с сетью, несмотря на название. Можно создать локального пользователя (net user username /add), добавить его в группу (net localgroup groupname username /add), запустить (net start servicename) или остановить (net stop servicename) службу. Предлагаю поближе познакомиться с этими утилитами и они окажут вам хорошую помощь. Ну а если будет время и желание, то я сам постараюсь подробнее расписать о них в следующих постах.


Управление удаленным компьютером

Многие начинающие админы считают, что терминал это прошлый век и недооценивают его возможности, так как все нужные операции можно произвести из графического интерфейса. А знаете ли вы, что все эти операции можно произвести и на удаленном компьютере, причем абсолютно незаметно для пользователя и без применения средств удаленного администрирования вроде RAdmin и TeamViewer? Ведь зачем отрывать дорогого бухгалтера от расчета вашей зарплаты только для того, чтобы посмотреть запущена ли на его машина служба общего реестра? Можно ведь просто набрать в командной строке sc \\buhpc query remoteregistry.

Вообще утилита sc довольно мощная - с её помощью можно детально настраивать управление службами. И не только на удаленном компьютере.

Для управления удаленной машиной я использую утилиты Sysinternals великого Марка Руссиновича. Чаще всего это PsExec. Она позволяет запустить командную строку или любой другой процесс на удаленной машине (psexec \\remotepc cmd). А дальше делать с ней всё, что захочется. Для этого нам и нужна сила cmd.

Управление принтерами - prnjobs. Сам ещё не юзал, но обязательно разберусь и отпишусь.


Ну вот и назрела тема для нескольких следующих постов. Это sc, prn*, net, netsh, wmic и Sysinternals. Ждём продолжения!


1, 2

2 комментария:

  1. Лучше использовать не ipconfig /renew, а ipconfig /release && ipconfig /renew, т.к. иногда dhcp клиенты забывают отдать используемый адрес и берут новый, соответственно старый ip станет доступен только по истечении lease time, уменьшая динамический скоп.

    ОтветитьУдалить
    Ответы
    1. Спасибо за совет. Попробуемс.

      Удалить