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

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

Почему стоит обратить внимание на PowerShell, а не использовать привычный cmd?  PowerShell мощный инструмент автоматизации, и в ряде сценариев он просто незаменим.

Не стоит забывать, что PowerShell также доступен и через веб а это значит что в случае необходимости Вы сможете работать с 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 можно решать некоторые задачи, а некоторые просто удобнее и быстрее.

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