ping -c в Windows: ошибка вывода Неправильное значение для параметра -c.

Вопрос или проблема

Я изучаю утилиту ping в Windows 10, и когда я пытаюсь выполнить команду в оболочке:

ping -c 3 example.com

Я получаю результат:

Доступ запрещен. Опция -c требует административных прав.

После выполнения от имени администратора я получаю:

Неправильное значение для опции -c.

Справка по командам (ping /?) говорит о данном аргументе:

  • [-c compartment] – Идентификатор маршрутизационного компартмента.

Что это значит? Какие значения может принимать этот аргумент?

Однако -c не упоминается на сайте Microsoft!


Я также пытался использовать эту команду так: ping -c google.com 8.8.8.8. Вывод:

Посылаю запросы на 8.8.8.8 с 32 байтами данных:
Ответ от 8.8.8.8: байт=32 время=127мс TTL=58
Ответ от 8.8.8.8: байт=32 время=57мс TTL=58
Ответ от 8.8.8.8: байт=32 время=57мс TTL=58
Ответ от 8.8.8.8: байт=32 время=57мс TTL=58

Статистика ping для 8.8.8.8:
    Пакеты: Отправлено = 4, Получено = 4, Потеряно = 0 (0% потерь),
Приблизительное время в пути в миллисекундах:
    Минимум = 57мс, Максимум = 127мс, Среднее = 74мс

Ошибки не было, но результат такой же, как у команды ping 8.8.8.8


Итак, как я правильно использую ping -c в Windows?

Похоже, что вы используете параметр -c для обозначения количества ping-запросов. В Windows параметр выглядит следующим образом (по умолчанию 3):

-n count       Количество эхо-запросов для отправки.

Вы можете увидеть все параметры, выполнив команду ping /?.

Что касается вопроса о компартментах:

Компартменты — это просто реликты ранних планов поддержки маршрутизационных компартментов в Windows Vista. Маршрутизационные компартменты не были повторно введены в более поздних версиях Windows.

Некоторые команды Windows все еще поддерживают параметры для компартментов, относящиеся к этой частичной реализации, которая так и не была завершена, такие как -c для ping, но они либо выдают ошибки, либо предоставляют бесполезную информацию:

Ipconfig /allcompartments
Netsh interface ipv4 show compartments
Netsh interface ipv4 set compartment…

Добавлю еще несколько комментариев. В Windows:

C:\Windows\System32> .\PING.EXE | C:\Windows\System32\findstr.exe /c:"-n" /c:"-c"
Использование: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
            [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
    -n count       Количество эхо-запросов для отправки.
    -c compartment Идентификатор маршрутизационного компартмента.

Следовательно, используйте опцию -n для указания количества эхо-запросов. -c относится к идентификатору маршрутизационного компартмента, а не к количеству в Windows. Идентификатор компартмента относится к маршрутизации сети (использование маршрутизатора в интернет-пути для каждой узловой системы). В операционных системах на основе Linux используйте опцию -c.

Ответ или решение

Команда ping – это мощный инструмент, который используется для диагностики сетевых соединений. В операционной системе Windows, при использовании команды, часто встречаются путаницы, связанные с параметрами, которые могут отличаться от команд, используемых в других операционных системах, таких как Linux.

Проблема с использованием ping -c в Windows

Вы пытались использовать команду ping -c 3 example.com, и получили сообщение об ошибке: Bad value for option -c. Давайте разберемся, почему это происходит и как правильно использовать команду в Windows.

Аргументы командной строки

В Windows команды и их параметры могут отличаться от параметров в Linux. В частности, в Windows для указания количества эхо-запросов, которые нужно отправить, используется параметр -n, а не -c. Следовательно, правильная команда звучит как:

ping -n 3 example.com

Разбор сообщения об ошибке

  1. Access Denied: Первоначальное сообщение указывает, что для использования параметра -c требуются права администратора. Однако это сообщение также может быть связано с неправильным контекстом использования параметра — в данном случае это не стандартный параметр для ping в Windows.

  2. Bad value for option -c: Это сообщение возникает потому, что параметр -c ожидает идентификатор маршрутизационного компартмента, который в Windows не реализован так, как в некоторых других операционных системах. Таким образом, командная строка не распознает -c как корректный аргумент.

Параметр -c и его значение

Параметр -c используется в Windows для обозначения "идентификатора маршрутизационного компартмента". Это осталось от устаревшей функциональности, которая была задумана в Windows Vista, но не была завершена. В результате данный параметр не актуален и может не давать ожидаемого эффекта.

Для получения списка всех доступных параметров вы можете ввести команду:

ping /?

Заключение и рекомендации

Для отправки заданного количества эхо-запросов в Windows используйте параметр -n вместо -c. Например, команда для отправки трех пингов будет выглядеть так:

ping -n 3 example.com

Если у вас возникают дополнительные проблемы с использованием ping, всегда полезно обратиться к справке по команде (ping /?) или к официальной документации от Microsoft.

Соблюдая эти рекомендации, вы сможете эффективно использовать утилиту ping в Windows и избежать распространенных ошибок.

Оцените материал
Добавить комментарий

Капча загружается...