netsh advfirewall firewall - не находит правило по имени
Доброе время суток. Имеется Windows Server Standard 2016, имеется брандмауэр и некоторые стандартные правила. Нужно выключить некоторое правило, например "Удаленный рабочий стол - пользовательский режим (входящий трафик UDP)". При написании команды выключения ( уже в контексте netsh advfirewall firewall):
>set rule name="Удаленный рабочий стол - пользовательский режим (входящий трафик UDP)" new enable=no Получаю ошибку "Ни одно правило не соответствует указанным критериям." Разбираясь в проблеме, вижу, что netsh в принципе не "видит" это правило по имени: Пишу в контексте cmd "netsh advfirewall firewall show rule name=all | find "Удаленный рабочий стол" - получаю 3 строчки, копирую результат "Удаленный рабочий стол - пользовательский режим (входящий трафик UDP)", пишу (уже в контексте netsh advfirewall firewall) show rule name="Удаленный рабочий стол - пользовательский режим (входящий трафик UDP)" - получаю "Ни одно правило не соответствует указанным критериям." Думаю что может попробовать в контексте cmd, пишу в cmd "netsh advfirewall firewall show rule name="Удаленный рабочий стол - пользовательский режим (входящий трафик UDP)" - получаю ту же ошибку - Почему так ? |
посмотрите через powershell
Get-NetFirewallRule | where {($_.displayname -match 'Удаленный рабочий')} | ft существует ли это правило, скорее всего написано не правильно |
А если использовать
Цитата:
Цитата:
|
:)
Это же МС, из-за их локализации там где не надо, такие вещи не работают. Зато работают такие: netsh advfirewall firewall show rule name="@FirewallAPI.dll,-28780" Upd. Если имя правила начинается с латинской буквы и содержит русские, то такие правила отображаются через show rule. Как пример: "Secure Socket Tunneling Protocol (SSTP-входящий)" |
Ageron, правило точно существует, т.к. команда "netsh advfirewall firewall show rule name=all | find "Удаленный рабочий стол" показывает правило.
Denis Dyagilev, - "Ни одно правило не соответствует критериям" - по netsh Хотел использовать netsh, PowerShell неудобно для этих команд. paranoya, - ни одно правило не соответствует указанным критериям. Я тоже думаю что из-за локализации, как говорится "Не читайте советскую прессу" :-). Посмотрю можно ли в Windows Core сменить локализацию, и сменятся ли при этом названия правил в брандмауэре. |
Вложений: 1
Цитата:
|
Длинное тире — : Alt + 0151
Короткое (среднее) тире – : Alt + 0150 |
__sa__nya, я проверял на Win10, значит на сервере 2016 другая строка стоит.
Ageron, на ноутбуке c win10 без вариантов такое набрать. Через charmap копируешь нужное, но вставляется в консоль обычный дефис. Работает только через bat-файл. |
Ageron, с длинным тире работает. Интересно ( и одновременно злит) то, что когда смотришь это правило через вывод show rule name - там тире недлинное. В общем, либо MS, либо команда ответственная за перевод ОС на русский накосячила.
|
Коллеги, на всякий случа́́й: «рулят» подходящие шрифты и/или вывод в файл с последующим просмотром кодов выведенных символов.
|
Цитата:
|
Hex-dump, любой hex-редактор, любой редактор, умеющий показывать коды символов (я пользую Far Manager):
Скрытый текст
Как я понимаю, в Вашем примере, на всякий случай, ещё желательно перенаправление вывода в файл делать из-под консоли PowerShell'a, а не cmd.exe, потому как в кодировке OEM/866 есть только «-», и нет ни «–», ни «—». |
Iska, все равно не понял, что анализировать hex-редактором, что за дамп ? Можете объяснить "для тех кто на бронепоезде" более подробно :-)
Кстати, мне было интересно, где кроется косяк MS. Поставил английскую версию OS, там команды по поиску правил по имени отрабатывают без проблем, указанных в шапке темы, все с обычными пробелами. В общем ошибку допустили локализаторы ОС на русскую. Надо было сразу ставить английскую версию, частично сам допустил ошибку. |
__sa__nya,
Имена "Удалённый рабочий стол бла-бал-бла" лежат как сторковые ресурсы в .dll. В самом правиле фаервола написано (в моём случае) имя="@FirewallAPI.dll,-28780", то есть, идёт подстановка и в имя правила подставляется ресурс -28780, а это как раз и есть строка на русском с тире вместо дефиса. В английской версии нет локализации, поэтому там поиск идёт нормально. В русском версии Винды есть локализация, но она сделана по правилам русского языка с тире, а не по правилам "компьютерного языка", где вместо тире используется дефис, так как знака тире нет на клавиатуре. Самый простой способ - взять любой "dll resoure viewer" и открыть им файл FirewallAPI.dll и найти в нём строки "Удалённый рабочий стол ...." |
paranoya, спасибо. По мне, самый простой способ, если ставить Windows Server, на котором пользователи не будут работать терминально, лучше ставить редакцию на английском языке, чтобы в принципе подобные проблемы исключить :-)
|
Время: 16:29. |
Время: 16:29.
© OSzone.net 2001-