Зачем нужна эта команда, если есть ipconfig
Классический ipconfig /all выдаёт длинную простыню: десятки строк на каждый адаптер, включая отключённые и виртуальные. Get-NetIPConfiguration устроен иначе. Он показывает блок на каждый интерфейс, и в блоке только то, что чаще всего нужно при поломке: имя подключения, адрес, шлюз и DNS-серверы.
Вторая причина в том, что результат этой команды — объекты PowerShell. Их можно отфильтровать, выбрать нужные свойства и передать дальше по конвейеру. Например, получить только адреса шлюзов всех интерфейсов или проверить, что у подключения есть DNS.
Если вам нужен построчный разбор всех полей, включая DHCP и время аренды, смотрите страницу про ipconfig /all. Здесь же речь о коротком обзоре.
Как выглядит вывод и что в нём важно
Для каждого интерфейса команда печатает набор полей. Вот те, на которые стоит смотреть в первую очередь.
| Поле | Зачем оно нужно |
|---|---|
| InterfaceAlias | Имя подключения |
| InterfaceIndex | Номер интерфейса |
| NetProfile.Name | Имя сети, например название Wi-Fi |
| IPv4Address | Адрес компьютера в этой сети |
| IPv4DefaultGateway | Адрес роутера, через который идёт трафик наружу |
| DNSServer | Адреса DNS-серверов |
Если поля IPv4DefaultGateway нет или оно пустое, у подключения нет выхода за пределы локальной сети: адрес есть, а дорога наружу не настроена. Если нет строки с DNS, имена сайтов не будут превращаться в адреса, хотя обращение по числовому адресу может работать.
Чтение результата: пять типовых картин
Привычка смотреть на вывод целиком экономит время. Вот пять ситуаций, которые встречаются чаще всего:
- Адрес вида 169.254.x.x. Это адрес, который Windows назначает сама, когда не нашла DHCP-сервер. Подключение к роутеру есть, но адрес он не выдал.
- Адрес из диапазона роутера, шлюз пуст. Настройки заданы вручную с ошибкой, или шлюз не получен.
- Всё заполнено, но нет интернета. Проверьте доступность шлюза и внешнего адреса командой ping, затем DNS.
- Два интерфейса с шлюзами. Windows выбирает основной по метрике; конфликт видно в таблице маршрутов.
- Подключение с пометкой отключённого носителя. Для такого интерфейса адреса не показываются, и это нормально.
Адрес 169.254.x.x разобран отдельно на странице про ошибку получения IP, а общий порядок проверки приведён в материале про Wi-Fi без доступа в интернет.
Параметры: -Detailed, -InterfaceAlias и -All
Без параметров команда показывает только подключённые интерфейсы с настроенной сетью. Три параметра меняют картину:
- -Detailed добавляет подробности: описание адаптера, MAC-адрес, состояние DHCP, сведения о маске и дополнительные поля;
- -InterfaceAlias "Wi-Fi" ограничивает вывод одним подключением;
- -All включает и те интерфейсы, у которых нет подключённого адаптера или адреса.
Параметры можно сочетать. Например, Get-NetIPConfiguration -InterfaceAlias "Ethernet" -Detailed удобен, когда нужно изучить один интерфейс и не отвлекаться на остальные. Точный состав подробного вывода зависит от версии системы.
Выборка нужных значений для скрипта и когда одной команды мало
Поскольку вывод состоит из объектов, из него легко достать отдельное значение. Конструкция (Get-NetIPConfiguration).IPv4DefaultGateway.NextHop вернёт адрес шлюза, а (Get-NetIPConfiguration).IPv4Address.IPAddress вернёт адрес компьютера. Если подключений несколько, результат будет списком, и тогда его стоит ограничить по имени интерфейса.
Такие выражения пригодятся для маленьких скриптов: проверки того, что шлюз отвечает, или записи адреса в журнал. Прежде чем встраивать их в автоматизацию, проверьте на своей машине, что свойства называются именно так: на разных версиях Windows выводы чуть различаются.
Для разового разбора проблемы скрипты не нужны. Достаточно прочитать блок интерфейса и сопоставить поля с таблицей выше.
Get-NetIPConfiguration отвечает на вопрос «какие параметры сети сейчас на компьютере». Он не отвечает на вопрос «работает ли эта сеть». Для проверки доступности шлюза используйте ping, для проверки порта — Test-NetConnection, для проверки имён — Resolve-DnsName. Когда сомнения остаются, сравните картину с настройками самого роутера: адрес шлюза на компьютере должен совпадать с адресом роутера в его веб-интерфейсе.
Если параметры выглядят правильно, а соединения нет, причина часто вне компьютера: у провайдера, на роутере или в линии. Тогда пригодится отчёт трассировки для обращения в поддержку.
Сравнение с другими способами посмотреть адрес и что сделать, если параметры выглядят неправильно
Узнать адрес компьютера можно несколькими способами, и у каждого своя область применения. В окне параметров Windows информация собрана в удобном виде, но не подходит для копирования в скрипт. Команда ipconfig работает везде, в том числе в старых версиях системы, но её вывод приходится читать глазами. Командлет Get-NetIPAddress даёт точный список адресов с префиксами, но без шлюза и DNS.
Get-NetIPConfiguration занимает середину: информации достаточно для первичной диагностики, а читать вывод легко. Поэтому именно с него разумно начинать разбор, когда непонятно, получил ли компьютер адрес и куда ведёт шлюз. Если же нужно дойти до деталей аренды DHCP, откройте ipconfig /all.
Для сети из нескольких подсетей проверьте, что адрес и шлюз принадлежат одной подсети: иначе шлюз недостижим напрямую.
Если вывод показывает неожиданные значения, действуйте от простого к сложному. Сначала переподключитесь к сети: отключите и снова включите Wi-Fi или выньте и вставьте кабель. Затем обновите адрес через ipconfig /release и ipconfig /renew. Если адрес по-прежнему не получен, перезагрузите роутер и убедитесь, что он выдаёт адреса автоматически.
Когда параметры заданы вручную, а сеть сменилась, вернитесь к автоматическому получению адреса: старые статические значения не подходят для новой подсети. Это частая причина того, что дома всё работало, а на работе или в гостях перестало.
Если ничего не помогает, сохраните вывод и обратитесь к администратору сети или провайдеру: по нему сразу видно, на каком этапе проблема.