
Ошибка «Test netconnection не распознано как имя командлета» возникает в PowerShell при попытке выполнить команду проверки сетевого соединения, если модуль NetTCPIP не загружен или недоступен. Наиболее частая причина – использование устаревшей версии PowerShell, где этот командлет отсутствует.
Для проверки доступности Test-NetConnection выполните Get-Command Test-NetConnection. Если результат пустой, необходимо убедиться, что установлен модуль NetTCPIP и версия PowerShell не ниже 4.0. На Windows 10 и новее командлет включён по умолчанию, но на старых системах требуется установка или обновление.
Запуск PowerShell с правами администратора может решить проблему с загрузкой модулей. Также важно проверить Execution Policy, поскольку ограничение запуска скриптов может блокировать командлеты. Используйте Set-ExecutionPolicy RemoteSigned для временного разрешения.
Альтернативным решением является использование Test-Connection или стандартных команд ping, если Test-NetConnection недоступен. Эти методы позволяют проверить доступность узлов и портов без установки дополнительных модулей, но предоставляют меньше информации о сетевом состоянии.
Проверка версии PowerShell и совместимости командлета
Командлет Test-NetConnection доступен начиная с PowerShell 4.0. Для проверки установленной версии выполните:
$PSVersionTable.PSVersion
Если версия ниже 4.0, командлет не поддерживается и появится ошибка о неизвестной команде. В этом случае потребуется обновление PowerShell.
Рекомендуется проверить доступность командлета с помощью:
Get-Command Test-NetConnection
Если команда не возвращает результат, действуйте по следующему плану:
- Убедитесь, что операционная система поддерживает модуль NetTCPIP (Windows 8 / Server 2012 и выше).
- Проверьте, установлен ли модуль вручную: Get-Module -ListAvailable NetTCPIP.
- Если модуль отсутствует, выполните установку через Install-WindowsFeature RSAT-AD-PowerShell или обновление системы до версии с поддержкой модулей TCP/IP.
После обновления PowerShell и подтверждения наличия модуля перезапустите сессию, чтобы Test-NetConnection стал доступен. Это гарантирует корректную работу командлета при проверке сетевых соединений и портов.
Подключение необходимых модулей для использования Test-NetConnection

Командлет Test-NetConnection требует модуль NetTCPIP, который может быть не загружен по умолчанию. Для проверки доступных модулей выполните:
Get-Module -ListAvailable
Если NetTCPIP отсутствует, подключите его вручную:
Import-Module NetTCPIP
При ошибке загрузки используйте следующие шаги:
- Убедитесь, что PowerShell запущен с правами администратора.
- Проверьте, установлен ли модуль в системе: Get-WindowsFeature RSAT-NetTCPIP или Get-Module -ListAvailable NetTCPIP.
- Если модуль не установлен, добавьте его через Windows Features или команду:
Install-WindowsFeature RSAT-NetTCPIP
Подключение модуля позволяет использовать Test-NetConnection для диагностики доступности портов, проверки маршрутов и скорости отклика узлов без дополнительных инструментов.
Обновление PowerShell до актуальной версии для поддержки командлета

Командлет Test-NetConnection поддерживается начиная с PowerShell 4.0. Для обновления сначала проверьте текущую версию:
$PSVersionTable.PSVersion
Если версия ниже 4.0, загрузите пакет обновления Windows Management Framework (WMF) соответствующей версии:
- PowerShell 4.0 – WMF 4.0 для Windows 7, Windows Server 2008 R2.
- PowerShell 5.1 – WMF 5.1 для Windows 7 SP1, Windows Server 2008 R2 SP1 и выше.
Скачайте WMF с официального сайта Microsoft, установите и перезагрузите систему. После перезапуска проверьте версию командой $PSVersionTable.PSVersion.
Для Windows 10 и Server 2016 и выше рекомендуется использовать встроенные обновления через Settings → Update & Security → Windows Update, так как последние версии PowerShell уже включены и поддерживают Test-NetConnection без дополнительных модулей.
Проверка синтаксиса и правильного написания команды

Ошибка «не распознано как имя командлета» может возникать из-за опечаток или некорректного синтаксиса. Правильное использование командлета выглядит так:
Test-NetConnection -ComputerName example.com -Port 80
Основные моменты проверки:
- Убедитесь, что используется Test-NetConnection, а не Test netconnection без дефиса.
- Параметр -ComputerName указывает адрес или имя хоста. Допустимо использовать IP-адрес или FQDN.
- Если проверяется порт, используйте параметр -Port с числовым значением от 1 до 65535.
- Для проверки маршрута добавьте -TraceRoute, если требуется диагностика сети.
Для отладки синтаксиса выполните команду Get-Help Test-NetConnection -Full. Это отобразит полный список параметров и примеры использования, исключая ошибки вызова командлета.
Настройка Execution Policy для разрешения запуска командлетов
PowerShell использует Execution Policy для контроля запуска скриптов и командлетов. Если политика слишком ограничительная, командлет Test-NetConnection может не выполняться.
Для проверки текущей политики выполните:
Get-ExecutionPolicy -List
Типовые уровни Execution Policy:
| Уровень | Описание |
|---|---|
| MachinePolicy | Политика, заданная через групповые политики. |
| UserPolicy | Политика для текущего пользователя, заданная через групповые политики. |
| Process | Политика только для текущего сеанса PowerShell. |
| CurrentUser | Политика для текущего пользователя. |
| LocalMachine | Политика для всех пользователей на компьютере. |
Для разрешения запуска командлетов временно установите политику на RemoteSigned или Bypass:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
После изменения политики перезапустите PowerShell с правами администратора, чтобы настройки вступили в силу и Test-NetConnection стал доступен для использования.
Использование альтернативных команд для проверки сетевого соединения

Если командлет Test-NetConnection недоступен, можно использовать стандартные средства PowerShell и командной строки для диагностики сети.
Основные альтернативы:
| Команда | Описание | Пример |
|---|---|---|
| Test-Connection | Проверка доступности узла с помощью ICMP (аналог ping). |
|
| ping | Команда Windows для проверки отклика узла. |
|
| tracert | Определяет маршрут до удаленного узла. |
|
| PowerShell TCP-клиент | Проверка доступности конкретного порта через System.Net.Sockets.TcpClient. |
|
Использование этих команд позволяет получать информацию о доступности узлов, времени отклика и состоянии портов без установки дополнительных модулей PowerShell.
Проверка системных переменных и путей к модулям PowerShell

Если Test-NetConnection не распознается, необходимо проверить пути к модулям PowerShell. Список директорий, где PowerShell ищет модули, хранится в переменной $env:PSModulePath:
$env:PSModulePath -split ';'
Стандартные пути включают:
- %ProgramFiles%\WindowsPowerShell\Modules – для модулей, доступных всем пользователям.
- %UserProfile%\Documents\WindowsPowerShell\Modules – для модулей текущего пользователя.
- %SystemRoot%\System32\WindowsPowerShell\v1.0\Modules – системные модули.
Для проверки наличия модуля NetTCPIP выполните:
Get-Module -ListAvailable NetTCPIP
Если модуль не найден, добавьте путь вручную:
$env:PSModulePath += ";C:\Путь\к\модулю"
После корректировки пути перезапустите PowerShell, чтобы командлет Test-NetConnection стал доступен.
Решение проблем с правами администратора и запуском с повышенными привилегиями
Некорректная работа Test-NetConnection часто связана с недостатком прав. Для использования командлета необходимо запускать PowerShell с правами администратора.
Проверка уровня привилегий выполняется командой:
[bool]([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
Если результат False, необходимо:
- Закрыть текущую сессию PowerShell.
- Найти ярлык PowerShell, кликнуть правой кнопкой мыши и выбрать Запуск от имени администратора.
- Повторно выполнить командлет Test-NetConnection.
Для постоянного использования с повышенными привилегиями можно создать ярлык с настройкой Run as Administrator или использовать планировщик заданий Windows для автоматического запуска скриптов с правами администратора.
Вопрос-ответ:
Почему PowerShell не распознает командлет Test-NetConnection?
Командлет Test-NetConnection доступен начиная с PowerShell 4.0 и требует модуль NetTCPIP. Если версия PowerShell ниже 4.0 или модуль не установлен, система выдаст ошибку о неизвестной команде. Проверить версию можно с помощью $PSVersionTable.PSVersion, а наличие модуля — через Get-Module -ListAvailable NetTCPIP.
Как подключить модуль NetTCPIP, если Test-NetConnection не работает?
Для подключения используйте команду Import-Module NetTCPIP. Если модуль отсутствует, установите его через Install-WindowsFeature RSAT-NetTCPIP на Windows Server или проверьте наличие модуля в стандартных директориях PowerShell. После установки необходимо перезапустить сессию PowerShell.
Можно ли проверить сетевое соединение без Test-NetConnection?
Да. Альтернативы включают Test-Connection для проверки отклика узла по ICMP, стандартные команды ping и tracert, а также создание TCP-клиента через System.Net.Sockets.TcpClient для проверки конкретного порта. Эти методы позволяют получить информацию о доступности узлов и портах без установки дополнительных модулей.
Что делать, если после установки модулей Test-NetConnection всё равно не распознается?
Необходимо проверить системные переменные и пути к модулям PowerShell через $env:PSModulePath. Убедитесь, что директории, содержащие NetTCPIP, включены в путь. При необходимости добавьте путь вручную и перезапустите PowerShell, чтобы командлет стал доступен.
Почему командлет может не работать без прав администратора?
Некоторые функции Test-NetConnection, включая проверку маршрутов и портов, требуют повышенных привилегий. Проверьте, запущен ли PowerShell с правами администратора, с помощью команды [bool]([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator). Если результат False, закройте текущую сессию и запустите PowerShell от имени администратора.
Почему при вводе Test-NetConnection PowerShell выдает ошибку о неизвестном командлете?
Ошибка возникает, если командлет Test-NetConnection недоступен в текущей версии PowerShell или модуль NetTCPIP не загружен. Для проверки версии используйте $PSVersionTable.PSVersion. Если версия ниже 4.0, командлет отсутствует, и потребуется обновление PowerShell. Для проверки наличия модуля выполните Get-Module -ListAvailable NetTCPIP. Если модуль отсутствует, подключите его командой Import-Module NetTCPIP или установите через Install-WindowsFeature RSAT-NetTCPIP на Windows Server. После установки перезапустите PowerShell, чтобы Test-NetConnection стал доступен.
