Zastanawiam się, czy ktoś w Microsoft kiedykolwiek doszedł do sytuacji, w której nie pamięta nazwy reguły! Akceptuje tylko 1 imię i brak możliwości dopasowywania wzór jest dostępny na netsh, aby pomóc znaleźć regułę stosując wzór podobny lub
używając show i to jest możliwe wymienienie wszystkich zasad, ale nie udało mi się znaleźć solidne narzędzie grep wiersza polecenia dla systemu Windows. netsh advfirewall firewall show rule
"SQL*"
^SQL.+$
name=all
Chcę móc uruchomić takie polecenie:
netsh advfirewall firewall show rule name=sql*
czy to możliwe?
find
windows-firewall
netsh
Achilles
źródło
źródło
netsh advfirewall firewall show rule name=all | find "SQL"
; ale wynik i kontrola nie są tak satysfakcjonujące, jak powinny. Jest raczej niechlujny, a nawet gorzej,/I
zFIND
polecenia, mogę uchylić problem wielkości liter; ale wynik jest nadal niechlujny ...Odpowiedzi:
W programie PowerShell:
jeszcze lepiej:
źródło
$fw.Rules | where-object {$_.Enabled -eq $true -and $_.Direction -eq 1} | Select-Object -property name, direction, enabled
New-Object
to polecenie cmdlet programu PowerShell, które zapewnia dostęp do znacznie starszego interfejsu API COM przy jednoczesnym zachowaniu składni i struktury obiektów programu PowerShell.To najlepsze, co mogłem zrobić. Czy ktoś wie, jak to zrobić dalej? Jak usunąć / odjąć nazwę reguły od wyników?
źródło
W systemie Windows 10 po uruchomieniu pojawia się ostrzeżenie
netsh advfirewall
, że przyszłe wersje systemu Windows mogą już nie obsługiwać tej funkcji i zamiast tego należy użyć programu PowerShell. Na szczęście to, co OP chciał zrobić, jest łatwe w PowerShell:Get-NetFirewallRule -DisplayName "SQL*"
Miałem ponad 1000 reguł zapory, które zostały utworzone przez plik wykonywalny o losowej nazwie, który chciałem usunąć. Poniższe polecenie ułatwiło to:
Remove-NetFirewallRule -DisplayName "*mongod.exe"
źródło
Możesz spróbować Select-String :
źródło
Bez programu PowerShell możesz po prostu użyć wyrażenia regularnego z findstr:
źródło
Jest to wprawdzie odpowiedź na pytanie, ale komentarz zaciemniłby sens.
Jest to również odpowiedź na nieco inne pytanie: jak nie mogę używać
netsh
i nadal znajdować reguł? :-)Myślę, że najlepiej pozostać w idiomie PowerShell, jeśli już tam jesteś, i możesz użyć pełnej możliwości dopasowania wzorca, w tym wyrażeń regularnych.
W tym celu zawarłem kilka warunków i mutacji, aby pokazać, w jaki sposób wszystkie konstrukcje PowerShell można osadzić w blokach funkcjonalnych.
Ostateczne zastrzeżenie, że mutacje muszą być uruchamiane z uprawnieniami administracyjnymi, w przypadku gdy czytanie nie musi.
źródło