Управляем сервером Windows с командной строки. Ч.2: Настройки сети

Комплект консольных сетевых утилит достаточно хорошо известен администраторам, ведь их приходится использовать достаточно часто, как для установок, так и диагностики. Для настройки сетевого интерфейса используется «netsh interface». Для примера просмотрим список, и для одного из доступных установим IP и DNS сервер:

> netsh interface ipv4 show interfaces
> netsh interface ipv4 set address name="1" source=static address=192.168.1.10 mask=255.255.255.0 gateway=192.168.1.1.
> netsh interface ipv4 add dnsserver name="Local" address=8.8.8.8 index=1

Для установки и изменения параметров сетевого интерфейса при помощи PowerShell 3.0 и выше используются командлеты New-NetIPAddress и Set-NetIPAddress.

PS> Get-NetIPInterface
PS> Set-NetIPAddress –InterfaceAlias Ethernet –IPv4Address 192.168.1.10 –PrefixLength 24 –DefaultGateway 192.168.1.1
PS> Set-DNSClientServerAddress –InterfaceAlias Ethernet -ServerAddresses "192.168.1.10","8.8.8.8"

Причем, New-NetIPAddress позволяет задавать несколько IP для одного интерфейса.
Вместо InterfaceAlias, можно использовать индекс InterfaceIndex, который легко узнать в выводе Get-NetIPInterface.
На смену команде route пришел набор командлетов, очень простых и понятных в использовании.

PS> Get-NetRoute
PS> New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "10.10.10.1" 
-InterfaceAlias Ethernet

Аналогом ping является два командлета Test-Connection и Test-NetConnection (сокращенно tnc). Первый очень простой и напоминает собственно ping, второй позволяет проверить доступность определенного порта или системы с разных ПК. Например, посмотрим на каких ПК в группе включен RDP и проверим подключение к example.org с двух систем:

PS> Test-NetConnection -ComputerName example.org -source localhost, SRV02
PS> (Get-ADComputer -LDAPFilter "(name=office*)").DNSHostName | Test-NetConnection -Port 3389

Но иногда вместо одной команды придется запомнить несколько командлетов. Так состояние сетевых интерфейсов традиционно можно узнать при помощи «ipconfig». До Win2012/8, чтобы сделать тоже самое при помощи PowerShell приходилось обращаться непосредственно к WMI. Например, нам нужны МАС и IP адреса:

PS> Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE | Select MACAddress,IPAddress

И только в PowerShell 3.0 появился простой аналог ipconfig, точнее несколько. Например, командлет Get-NetIPAddress выдает подробную информацию об интерфейсах, а Get-NetIPConfiguration (алиас gip), позволяет получить информацию о сетевых настройках: IP интерфейса, шлюза и DNS. Добавив дополнительные параметры, например –Detailed, получим больше данных.
Профильтровав их вывод мы можем заменить «ARP -a» выводящую таблицу МАС-адресов и GETMAC — отображающую MAC-адреса сетевых адаптеров локального или удаленного компьютера.
Есть уже и готовые скрипты. Например, Ping_Multiple_Server_With_Traceroute.ps1 (goo.gl/0iLeyg) позволяет проверить подключение к нескольким серверам и запустить аналог tracert к не ответившим системам.
Управляем сервером Windows с командной строки. Ч.1 Основные операции

Теги:

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

Оставить комментарий

(required)

(required)