Используем модуль PowerShell Get-NetView для диагностики сетевых проблем
Собрать достаточно логов и информации с системы, у которой что-то не так с сетью, бывает непросто. Всегда не хватает ещё одной мелочи, чтобы докопаться до сути проблемы. В этой заметке я покажу, как встроенный модуль Get-NetView в powershell может помочь вам собрать все нужные логи и данные.
Что такое модуль Get-NetView?
«Get-NetView - это инструмент, который собирает данные о локальной системе и сетевой конфигурации, чтобы упростить диагностику сетевых проблем в Windows».
Исходник: https://github.com/microsoft/Get-NetView?tab=readme-ov-file
Как установить
Есть разные способы установить модуль от Microsoft, но он может уже быть у вас в системе. Я, например, проверял Windows 10, 11 и Windows Server 2022 - где-то он уже был, где-то не было вовсе, а где-то стояла старая версия. В следующих разделах я покажу разные сценарии и расскажу, как установить или обновить модуль в каждом случае.
Как проверить, установлен ли он уже
Выполните эту команду, чтобы проверить наличие модуля:
Get-Module Get-NetView -ListAvailable
Если он есть, вы увидите его в списке с номером версии (в примере ниже - старая версия от 2023 года).

Если его нет, команда ничего не вернёт, и можно переходить к способам установки ниже.
Обновление старой версии
Если у вас уже установлена старая версия (как на скриншоте выше, от 2023 года), можно обновить её вот так:
Install-Module Get-NetView -Force -SkipPublisherCheck
Когда вы проверяете версию установленного модуля, в списке могут быть и старая, и новая версии. После запуска нового сеанса PowerShell будет использоваться последняя.

Установка, если модуля нет в системе
Если у вас нет модуля Get-NetView, установить его можно одним из способов ниже.
1. Install-Module
Самый прямой способ - через команду:
Install-Module Get-NetView -SkipPublisherCheck -Force
2. Прямой запуск скрипта
Можно просто скачать и сохранить скрипт Get-NetView.ps1 в текущую папку:
Invoke-WebRequest "aka.ms/Get-NetView" -OutFile "Get-NetView.ps1"
3. Для изолированных или air-gapped систем
Если целевая система не имеет доступа к сети, сохраните модуль на другой машине, где он установлен, в папку C:\SomeFolderPath:
Save-Module Get-NetView -Path C:\SomeFolderPath -Force

Затем скопируйте папку Get-NetView из C:\SomeFolderPath в C:\Program Files\WindowsPowerShell\Modules на целевой системе.
Использование модуля Get-NetView
После установки в системе появится функция Get-NetView, и вы можете запустить её из PowerShell с правами администратора:

После запуска начнётся сбор информации о вашей системе. Это может занять какое-то время - всё зависит от количества сетевых адаптеров, процессоров и прочих факторов.

Когда процесс завершится, вы увидите путь к архиву с логами и время, за которое всё было собрано:

По умолчанию всё сохраняется на рабочем столе в отдельную папку с логами. Там же будет и zip-архив с этими логами - удобно, если нужно перенести их на другую систему для дальнейшего анализа:

Просмотр собранных логов
Можно просто открыть папку и изучить разные файлы: текстовые, zip-архивы, журналы событий, файлы реестра и т.д. - всё, что пригодится для расследования.
(имейте в виду, в них может быть чувствительная информация)

В логах есть всё: от правил брандмауэра и IP-конфигурации до списка служб Windows, драйверов, информации о версиях, ARP-таблицы, IP-маршрутов и настроек SMB. Этого должно хватить вашей сетевой команде.