Несмотря на то, что PowerShell доступен уже более пяти лет, для многих он все еще остается «синей командной строкой» — это и послужило основной причиной выбрать в качестве темы ежедневные сценарии администратора Windows Server.
Почему стоит обратить внимание на PowerShell, а не использовать привычный cmd? Ответ ghjcn: PowerShell это в первую очередь мощный инструмент автоматизации, и в ряде современных сценариев он просто незаменим. Не стоит забывать, что PowerShell также доступен и через веб (подробнее в моей статье «Настройка PowerShell Web Access«), а это значит что в случае необходимости Вы сможете работать с iOS, OS X, Windows Phone и Android устройств.
Большинство сетевых командлетов находятся в группе Net* — запросить список можно так:
Get-Command Get-Net*
По каждому командлету можно получить подробную справку. Давайте рассмотрим ее для одиного из самых простых и знакомых:
Get-Help Get-NetIPAddress
Также нелишним будет ознакомиться с примерами использования:
Get-Help Get-NetIPAddress -Examples
Теперь я приведу несколько примеров, которые будут актуальны практически для каждого, кто работает с Windows Server:
Get-NetIPConfiguration
Get-NetIPAddress
Get-NetAdapter
Get-NetAdapterBinding
Get-NetAdapterHardwareInfo
Get-NetRoute
Get-NetTCPConnection
Теперь посмотрим на командлеты клиента DNS:
Get-Command Get-DNS*
Один из наиболее полезных командлетов этой группы (разумеется, этот кэш можно очистить):
Get-DnsClientCache
Clear-DnsClientCache
А если у Вас есть что-то в файле hosts это будет видно:
Get-DnsClientServerAddress
Теперь еще несколько полезных командлетов:
Test-Connection это знакомый всем ping, в примере полезные флаги Count и BufferSize:
Test-NetConnection покажет доступность хоста, с флагом TraceRoute результаты трассировки, а с флагом Port доступ к порту (у этого командлета есть алиас TNC что весьма удобно):
Resolve-DnsName это не менее знакомый nslookup, в примере показаны наиболее востребованные флаги Type и Server:
Restart-NetAdapter — перезапускает сетевой адаптер:
Под конец статьи я расскажу о том, что чаще всего спрашивают — «Как настроить сетевое подключение ОС через 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
Второй способ, это sconfig , он максимально прост и понятен:
Теперь посмотрим как настроить сетевое подключение с помощью PowerShell:
New-NetIPAddress -InterfaceIndex 12 -IPAddress %ip% -PrefixLength %mask% -DefaultGateway %gate%
Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddress («%ip%»,»%ip%»)
Чтобы вернуть настройки на DHCP нужно выполнить:
Set-NetIPInterface -Dhcp Enabled
Не забывайте, что PowerShell это всего лишь инструмент, удобен он для определенных задач, и не является единственно верным. По-прежнему только через GUI можно решать некоторые задачи, а некоторые просто удобнее и быстрее через GUI. Netsh по-прежнему остается довольно мощным средством, так что выбирайте инструмент с холодной головой 😉
Надеюсь озвученная информация будет полезной, а если нужна будет помощь — пишите мне на почту d.kagarlickij@outlook.com