Перейти к публикации
Дедовский городской форум
e-neticW0lf

Познаем прелести консоли в ОС Windows.

Рекомендованные сообщения

Большинство из нас (особенно те, кому есть с чем сравнить — например, с консолью в *nix) привыкло смотреть на консоль в семействе Windows (широко известное cmd) как на рудимент, доставшийся по наследству от почившего ныне MS-DOS.

 

Ладно, я могу закрыть глаза, когда дело касается простой домохозяйки, или обывателя, которому нужно «чтобы работало». Но вот то, что для многих сотрудников телекоммуникационной сферы (пусть и «низших» сословий, в лице монтажников/технической поддержки) «cmd.exe» является лишь средством набора команды «ping ya.ru», или «ipconfig» в лучшем случае, — становится грустно.

 

Поэтому я решил систематизировать базовые, с моей точки зрения, вещи, которые можно реализовать через консоль. Рассчитываю, что материал придется по вкусу не только «начинающим», но и intermidiate-пользователи увидят достоинства там, где их, казалось бы, и нет.

 

Начну с одной полезной и, как показывает практика, неизвестной широким массам утилиты — netsh (от английского network shell).

 

В *nix'е все в то, или иное время являлись свидетелями примерно следующего колдовства:

 

Ifconfig eth0 192.168.0.177/24

route add default gw 192.168.0.1

echo 192.168.0.1 >> /etc/resolv.conf

 

В тот момент, когда эти строчки набираются в консоли — даже дурнопропахнувший кофейно-табачным запахом в дырявых джинсах и с недельной щетиной приглашенный для решения тривиальной задачи «специалист» становится в глазах всех присутствующих земным воплощением божественного АДМИНА! Не хватает только приглушенного столпа света, ниспадающего в этот момент на МАСТЕРА.

 

Как оказывается, всем доступный и попрекаемый Windows имеет не многим уступающий инструмент - упомянутый выше network shell.

 

Давайте посмотрим, как соответствующая комбинация будет выглядить в Windows (рассказываю, опираясь на синтаксис Windows 7. Утилита netsh на полных правах присутствует во всей линейки Windows, начиная с Windows XP, с небольшими различиями в синтаксисе):

 

netsh interface ipv4 add address «Подключение по локальной сети»
192.168.0.177 255.255.255.0

netsh interface ipv4 add address «Подключение по локальной сети» gateway
192.168.0.1

netsh interface ipv4 add dnsservers «Подключение по локальной сети» 192.168.0.1

 

Как видите, все очень просто и функционально.

 

##########################

 

Из доступного и часто используемого в праведной борьбе с вирусами и кривыми кривыми руками можно также отметить команду сброса настроек на сетевых интерфейсах:

 

netsh winsock reset

 

##########################

 

А также полезная команда, которая покажет текущую конфигурацию сетевых интерфейсов:

 

netsh dump

 

##########################

 

Хотите из консоли настраивать и подключаться к беспроводным сетям? Нет ничего проще:

 

netsh wlan

 

##########################

 

Можно создавать профили беспроводных сетей. Подключаться/отключаться. Все, то же, что позволяет графический интерфейс конфигуратора — только, как показывает практика, освоив консоль — все можно выполнять в разы шустрей и как по мне, так еще и гораздо удобней.

 

Часто можно наткнуть на вопрос следующего характера:

 

Я пользуюсь интернетом с ноутбука дома через вашего провайдера и на работе через корпоративную сеть. Можно ли мне что-то сделать, чтобы не приходилось постоянно перенастраивать сеть?

В контексте обычного офисного работника, далекого даже от банальной настройки сетевого интерфейса обычная настройка может занимать от 5 минут и выше.

 

Мне удивительно, что единицы используют т. н. «alliases» (по аналогии с *nix), что в переводе значит «псевдоним». Другими словами — на один сетевой интерфейс можно назначить несколько конфигураций. И в соответствии с текущей топологией сети будет работать нужная.

 

Что самое главное, задача тривиальна.

 

Разберем на следующем примере:

 

Дома имеем сеть со статичным ip-адресом 192.168.0.177/24, шлюз 192.168.0.1 и DNS-сервер 192.168.0.1, а на работе подключаемся используя другой статичный ip, например, в нашем случае пусть это будет 172.17.17.5/30, шлюз 172.17.17.6 и DNS-сервер будет 172.17.0.1. Для реализации рабочего решения через консоль нам необходимо сделать следующее:

 

netsh interface ipv4 add address «Подключение по локальной сети»
192.168.0.177 255.255.255.0

netsh interface ipv4 add address «Подключение по локальной сети» gateway
192.168.0.1

netsh interface ipv4 add dnsservers «Подключение по локальной сети» 192.168.0.1

 

Это мы сконфигурировали сетевой интерфейс для работы в домашней сети.

 

netsh interface ipv4 add address «Подключение по локальной сети»
172.17.17.5 255.255.255.252

netsh interface ipv4 add address «Подключение по локальной сети» gateway
172.17.17.6

netsh interface ipv4 add dnsservers «Подключение по локальной сети» 172.17.0.1.

А это - настроили "рабочую" сеть.

При такой конфигурации наша сеть будет одинаково успешно работать и дома, и на работе.

 

##########################

 

Рабочего решения для вариант в одном месте — DHCP-клиент, в другом — статичный IP, — я не нашел.

 

##########################

Можно ли используя netsh СОЗДАТЬ vpn-подключение?

Нет. Создать vpn-подключение нельзя.

Скажу больше, — создать vpn-подключение из «cmd» нельзя в принципе.

 

Надеюсь, данный материал станет хорошим подспорьем в решении тривиальных задач и заставит немного иначе смотреть на «пресловутую консольку» многих пользователей семейства Windows.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Рабочего решения для вариант в одном месте — DHCP-клиент, в другом — статичный IP, — я не нашел.

А что мешает прописать все теже команды в bat файлы и решать вопрос одним кликом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Рабочего решения для вариант в одном месте — DHCP-клиент, в другом — статичный IP, — я не нашел.

А что мешает прописать все теже команды в bat файлы и решать вопрос одним кликом?

Ничего не мешает.

Я как бы не о решениях всякого написал, а именно про использование консоли в виндах.

Леш, можно и накодить утилиту, которая также будет делать много всякого и по одному клику. :-)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ты расписал конкретные команды...Потом сам пишешь что для конкретной задачи РЕШЕНИЯ ты не нашел... Я просто ответил что этим решением для нормальной работы могет быть откопипастивания их же в блокнот и сохранение в расширении .bat.

и все... Никакого доп софта, или понимания дополнительных кодов и язаков програмирования...

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

 

Если ты думаешь что это сложнее к пониманию пользователей чем, то что написал ты, то я тебя расстрою... Тут половина даже не понимают что такое "консоль" или "CMD" не говоря о том как до неё хотя бы добраться... Наводкой может служить только твоё второе предложение где ты упоминаешь место в котором нужно вводить ping...

 

А BAT файл это не что иное как уже записанная команда консоли, уже готовая к выполнению. одно от другого отрывать бессмысленно...

 

PS: Может ещё тут найдешь чуток интересного http://www.windowsfaq.ru/content/category/3/7/45 там и то что ты расписал есть...

 

А ещё вспомнил как некогда давно гражданка Лена обзывала мышь самым ужастным изобретением и работала в FARe... Я о том что печатать команды пользователю с запоминанием до символа вражеских букв не с руки... особенно если большенство этих же действий можно сделать щелкая мышкой.... Именно по этому *nix не особо популярен с их терминалом и подобным... Людям лень, мышкой проще...

Из примера могу привести любимое занятие прокручивания бокового ползунка в браузере для пролистования страницы, когда это куда проще делать всего лишь нажимая "пробел на клавиатуре и страница опуститься ровно до того места, до которого дочитали... Многие об этом знают? Может ещё больше народу этим пользуется...?

Изменено пользователем Skazochnik

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Рабочего решения для вариант в одном месте — DHCP-клиент, в другом — статичный IP, — я не нашел.

 

Если я правильно понял задачу, тут вообще cmd не требуется. Достаточно настроить Alternate Configuration и не надо никаких батников, при недоступности DHCP сервера интерфейс получит альтернативные статические IP настройки.

 

Можно ли используя netsh СОЗДАТЬ vpn-подключение?

Нет. Создать vpn-подключение нельзя.

Скажу больше, — создать vpn-подключение из «cmd» нельзя в принципе.

 

Создать возможно и нельзя, но для этой задачи есть CMAK

 

Установить и разорвать VPN соединение из командной строки можно командой rasdial

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Ты расписал конкретные команды...Потом сам пишешь что для конкретной задачи РЕШЕНИЯ ты не нашел...

Перво-наперво у меня была цель рассказать об утилите netsh, а предлагаемые примеры я использовал для предупреждения возможных вопросов.

 

Я просто ответил что этим решением для нормальной работы могет быть откопипастивания их же в блокнот и сохранение в расширении .bat.

и все...

Еще раз.

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

 

Если ты думаешь что это сложнее к пониманию пользователей чем, то что написал ты, то я тебя расстрою... Тут половина даже не понимают что такое "консоль" или "CMD" не говоря о том как до неё хотя бы добраться... Наводкой может служить только твоё второе предложение где ты упоминаешь место в котором нужно вводить ping...

То, что написано, - скорее для интересующихся и пытающихся разобраться, а не "для домохозяек". Я понимаю, что и как легче и быстрей может быть.

Даже больше - я сам для себя иначе пользуюсь.

Но сабж не об этом. :-)

 

Создать возможно и нельзя, но для этой задачи есть CMAK

А для этого под рукой должен быть Windows Server. ;-)

 

Установить и разорвать VPN соединение из командной строки можно командой rasdial

Да, есть такое. Но практически бессмысленно чуть более, чем полностью.)

 

 

Ребят. Еще раз повторюсь.

Я себе целью ставил не показать решение разнообразных сетевых задач, которые возникают с завидной регулярностью

Я хотел познакомить именно с утилитой netsh и развенчать миф о том, что консоль в виндах - бесполезна де-факто.

 

Если интересно и кто-то, помимо меня, примет участие в создании некоего FAQ, - давайте попробуем.

С правильным оформление, текстом и разъяснениями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну вот, и тут меня приплели.

Я не говорила что мышь это ужасно, я лишь употребила выражение "гуевые мышевозильщики".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Создать возможно и нельзя, но для этой задачи есть CMAK

А для этого под рукой должен быть Windows Server. ;-)

ты удивишься.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Если интересно и кто-то, помимо меня, примет участие в создании некоего FAQ, - давайте попробуем.

С правильным оформление, текстом и разъяснениями.

Список команд, которые можно использовать можно просмотреть, введя в командной строке (Пуск - Выполнить - cmd для Windows семейтва NT или Пуск - Выполнить - command для линейки 9х) команду

 

help

 

Результат работы help - список доступных команд с краткими пояснениями к ним. Чтобы получить более подробную информацию по интересующей команде введите в командной строке help имя_команды. Например, чтобы получить подробную справку по ключам команды AT выполните следующую команду:

 

help AT

 

Правда в современных системах немножечко подругому - добраться до командной строки можно через:

Пуск -> Все программы -> стандартные -> Командная строка

 

А получить справку по каждой конкретной команде можно поставив после имени команды через пробел занки "/?", т.е. например для любимой netsh спавка будет следующим образом...

 

netsh /?

В принципе весь Faq...

 

... развенчать миф о том, что консоль в виндах - бесполезна де-факто.

Мне вот интересно - есть кто-нибудь на этом форуме, кто считал консоль бесполезной? Не не знал о её существовании а именно считал бесполезной...

 

 

я лишь употребила выражение "гуевые мышевозильщики".

Ну из всего сказанного до меня только дошло ненавистное отношение к мышевозильщикам... Пардон что переврал...

Изменено пользователем Skazochnik

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а мне больше powershell нравится нежели cmd

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Список команд, которые можно использовать можно просмотреть, введя в командной строке (Пуск - Выполнить - cmd для Windows семейтва NT или Пуск - Выполнить - command для линейки 9х) команду

help

99% этого делать не будет.

Всем хочется что-то узнать по принципу "вынь да положи".

 

А получить справку по каждой конкретной команде можно поставив после имени команды через пробел занки "/?", т.е. например для любимой netsh спавка будет следующим образом...

netsh /?

В принципе весь Faq...

Для непосвященных ценность его сводится к нулю, когда человек видит следующее:

add			- Добавление элемента конфигурации в список элемент
advfirewall	- Изменения в контексте 'netsh advfirewall'.
branchcache	- Изменения в контексте 'netsh branchcache'.
bridge		 - Изменения в контексте 'netsh bridge'.
delete		 - Удаление элемента конфигурации из списка элементо
dhcpclient	 - Изменения в контексте 'netsh dhcpclient'.
dnsclient	  - Изменения в контексте 'netsh dnsclient'.
dump		   - Отображение сценария конфигурации.
exec		   - Запуск файла сценария.
firewall	   - Изменения в контексте 'netsh firewall'.
help		   - Отображение списка команд.
http		   - Изменения в контексте 'netsh http'.
interface	  - Изменения в контексте 'netsh interface'.
ipsec		  - Изменения в контексте 'netsh ipsec'.
lan			- Изменения в контексте 'netsh lan'.
mbn			- Изменения в контексте 'netsh mbn'.
namespace	  - Изменения в контексте 'netsh namespace'.

Много чего понятно? Все лишние вопросы отпадают и сразу ясно, что теперь делать?! Ну хотя бы для настройки сети? :-)

Еще раз говорю, - в таком контексте человек дальше просмотра этого "мануала" не продвинется. А вот если раписать, что да как, да привести примеры - все приобретает совершенно другой вид.

 

Мне вот интересно - есть кто-нибудь на этом форуме, кто считал консоль бесполезной? Не не знал о её существовании а именно считал бесполезной...

А как можно увидеть ее полезность, если не знаешь, что с ЭТИМ делать?

Много ли считают полезным "Таблицу символов", например?

Или много ли знали то, что можно альтернативные конфигурации сети задавать в настрйоках соединения.

Говорю же - пока не увидят, как это работает на практике - эти вещи интересны только для прошаренно-увлекающихся и специалистов.

 

а мне больше powershell нравится нежели cmd

Ну вот когда оно в виндах будет by default, тогда можно будет и говорить о нем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Главным преимуществом консоли в винде я вижу возможность её использовать не беспокоя удалённого пользователя. Ну и ещё пара удобств.

 

А изучать сейчас лучше, мне кажется, powershell. В особенности те возможности, что недоступны для обычной строки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Powershell в семерке уже сразу на борту вроде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...