Управление настройками сети с помощью PowerShell

Несмотря на то, что PowerShell доступен уже более пяти лет, для многих он все еще остается «синей командной строкой» — это и послужило основной причиной выбрать в качестве темы ежедневные сценарии администратора Windows Server.

Почему стоит обратить внимание на PowerShell, а не использовать привычный cmd? Ответ ghjcn: PowerShell это в первую очередь мощный инструмент автоматизации, и в ряде современных сценариев он просто незаменим. Не стоит забывать, что PowerShell также доступен и через веб (подробнее в моей статье «Настройка PowerShell Web Access«), а это значит что в случае необходимости Вы сможете работать с iOS, OS X, Windows Phone и Android устройств.

Большинство сетевых командлетов  находятся в группе Net* — запросить список можно так:

Get-Command Get-Net*

Screen Shot 2014-05-25 at 16.19.26

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

Get-Help Get-NetIPAddress

Screen Shot 2014-05-25 at 16.23.22

Также нелишним будет ознакомиться с примерами использования:

Get-Help Get-NetIPAddress -Examples

Screen Shot 2014-05-25 at 16.23.33

Теперь я приведу несколько примеров, которые будут актуальны практически для каждого, кто работает с Windows Server:

Get-NetIPConfiguration

Screen Shot 2014-05-25 at 20.48.06

 

Get-NetIPAddress

Screen Shot 2014-05-25 at 18.51.37

Get-NetAdapter

Screen Shot 2014-05-25 at 16.33.43

Get-NetAdapterBinding

Screen Shot 2014-05-25 at 16.41.49

Get-NetAdapterHardwareInfo

Screen Shot 2014-05-25 at 16.45.34

Get-NetRoute

Screen Shot 2014-05-25 at 17.01.58

Get-NetTCPConnection

Screen Shot 2014-05-25 at 17.06.06

Теперь посмотрим на командлеты клиента DNS:

Get-Command Get-DNS*

Screen Shot 2014-05-25 at 17.15.28

Один из наиболее полезных командлетов этой группы (разумеется, этот кэш можно очистить):

Get-DnsClientCache

Clear-DnsClientCache

Screen Shot 2014-05-25 at 18.44.29

А если у Вас есть что-то в файле hosts это будет видно: Screen Shot 2014-05-25 at 18.49.57

Get-DnsClientServerAddress

Screen Shot 2014-05-25 at 17.23.11

Теперь еще несколько полезных командлетов:

Test-Connection это знакомый всем ping, в примере полезные флаги Count и BufferSize: Screen Shot 2014-05-25 at 17.42.41

Test-NetConnection покажет доступность хоста, с флагом TraceRoute результаты трассировки, а с флагом Port доступ к порту (у этого командлета есть алиас TNC что весьма удобно):

 

Screen Shot 2014-05-25 at 21.32.07

Resolve-DnsName это не менее знакомый nslookup, в примере показаны наиболее востребованные флаги Type и Server: Screen Shot 2014-05-25 at 17.54.30  

Restart-NetAdapter — перезапускает сетевой адаптер: Screen Shot 2014-05-25 at 19.14.17

Под конец статьи я расскажу о том, что чаще всего спрашивают — «Как настроить сетевое подключение ОС через PowerShell»:

Вариантов несколько, самый древний и известный это использование netsh:

Для этого открываем cmd.exe с правами администратора и смотрим какие интерфейсы присутствуют в системе:

netsh interface ipv4 show interfaces

Записываем номер Idx адаптера, который будем настраивать. Теперь зададим основные настройки:

netsh interface ipv4 set address name=”%ID%” source=static address=%ip% mask=%mask% gateway=%gate%

.. и укажем DNS:

netsh interface ipv4 add dnsserver name=”%ID%” address=%DNS% index=1

Для второго DNS необходимо указать index=2 Если нужно вернуть настройки в DHCP достаточно выполнить следующее:

netsh interface ipv4 set address name=”%ID%” source=dhcp

Вот как это выглядит: Screen Shot 2014-05-25 at 18.33.26

Второй способ, это sconfig , он максимально прост и понятен:

Screen Shot 2014-05-25 at 18.37.35

Теперь посмотрим как настроить сетевое подключение с помощью PowerShell:

New-NetIPAddress -InterfaceIndex 12 -IPAddress %ip% -PrefixLength %mask% -DefaultGateway %gate%

Screen Shot 2014-05-25 at 19.03.25

Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddress («%ip%»,»%ip%»)

Screen Shot 2014-05-25 at 19.09.18

 

Чтобы вернуть настройки на DHCP нужно выполнить:

Set-NetIPInterface -Dhcp Enabled

 

Не забывайте, что PowerShell это всего лишь инструмент, удобен он для определенных задач, и не является единственно верным. По-прежнему только через GUI можно решать некоторые задачи, а некоторые просто удобнее и быстрее через GUI. Netsh по-прежнему остается довольно мощным средством, так что выбирайте инструмент с холодной головой 😉

Надеюсь озвученная информация будет полезной, а если нужна будет помощь — пишите мне на почту d.kagarlickij@outlook.com

Pin It

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.