मैं एक पैटर्न का उपयोग करके एक नियम खोजने के लिए नेटश का उपयोग कैसे कर सकता हूं


10

मैं सोच रहा हूँ कि क्या Microsoft में कोई भी ऐसी स्थिति में आया है जहाँ वे एक नियम का नाम याद नहीं रख सकते हैं! केवल स्वीकार करता है 1 नाम और कोई पैटर्न मिलान सुविधा की तरह एक पैटर्न का उपयोग करके नियम खोजने में मदद करने netsh पर उपलब्ध है या शो का उपयोग कर और यह सभी नियमों को सूचीबद्ध करने के लिए संभव है, लेकिन मैं खिड़कियों के लिए एक ठोस कमांड लाइन ग्रेप उपकरण खोजने में असमर्थ था।
netsh advfirewall firewall show rule"SQL*"^SQL.+$
name=all

मैं इस तरह से एक कमांड चलाने में सक्षम होना चाहता हूं:

netsh advfirewall firewall show rule name=sql*

क्या यह संभव है?


1
एक तेजी से जवाब होगा: netsh advfirewall firewall show rule name=all | find "SQL"; लेकिन आउटपुट और नियंत्रण उतना संतोषजनक नहीं है जितना होना चाहिए। यह बल्कि गन्दा है और इससे भी बदतर, केस-सेंसिटिव ...
Achilles

लगता है कि निम्नलिखित लिंक blogs.technet.com/b/jamesone/archive/2009/02/18/…
tony roth

पॉवरशेल का उपयोग करना एक और विकल्प है; हाँ। लेकिन क्या होगा अगर आप रिमोट मशीन पर ऐसा करना चाहते हैं? क्या PS के लिए दूरस्थ बंदरगाहों को खुला छोड़ना संभव है और IDS / IPS जैसे मेरे पास BvSshServer है? मैं विंडोज के देशी कमांड प्रॉम्प्ट में उपलब्ध कुछ खोज रहा हूं।
अकिलीज

ऐसा लगता है कि SSL का उपयोग करके PS को सुरक्षित करना संभव है: Technet.microsoft.com/en-us/magazine/ff700227.aspx
Achilles

मैंने पाया कि का उपयोग कर /Iके साथ FINDआदेश, मैं केस-संवेदी समस्या चकमा कर सकते हैं; लेकिन परिणाम अभी भी गड़बड़ है ...
Achilles

जवाबों:


10

PowerShell रन में:

$fw=New-object -comObject HNetCfg.FwPolicy2    
$fw.rules | findstr /i "whaturlookingfor"

और भी बेहतर:

$fw.rules | select name | select-string "sql"

1
$ fw.rules | कहाँ-वस्तु {$ _। सक्षम -ईक $ सच्चा -और $ _। दिशा -इक 1} मुझे इस (इनबाउंड सक्षम) तक पहुंचने में मदद की।
ब्राच

1
इसके अलावा, आप नियम के केवल कुछ गुणों का चयन कर सकते हैं। $fw.Rules | where-object {$_.Enabled -eq $true -and $_.Direction -eq 1} | Select-Object -property name, direction, enabled
डैन प्रिट्स

1
मैं उलझन में हूँ, यह एक netsh प्रॉम्प्ट में चलाया जा रहा है? या कुछ और माहौल?
jjxtra 21

इसे PowerShell प्रॉम्प्ट में या PowerShell (.ps1) स्क्रिप्ट के भाग के रूप में चलाना होगा। New-Objectएक PowerShell cmdlet है जो PowerShell सिंटैक्स और ऑब्जेक्ट संरचना को संरक्षित करते हुए बहुत पुराने COM API तक पहुंच प्रदान करता है।
बेसजेन

4

यह सबसे अच्छा है जो मैं कर सकता था। किसी को पता है कि इसे आगे कैसे ले जाना है? जैसे परिणामों से नियम नाम को हटा / घटाएँ?

netsh advfirewall firewall show rule name=all | find "Rule Name:" | find "NameLookingFor"

3

विंडोज 10 पर मुझे एक चेतावनी मिलती है जब मैं निष्पादित करता हूं netsh advfirewall, यह कहता है कि भविष्य के विंडोज संस्करण उस सुविधा का समर्थन नहीं कर सकते हैं और एक को इसके बजाय पावरशेल का उपयोग करना चाहिए। सौभाग्य से, ओपी पावरस्ले में क्या करना चाहता था:

Get-NetFirewallRule -DisplayName "SQL*"

मेरे पास 1000+ फ़ायरवॉल नियम थे जो एक बेतरतीब ढंग से नामित निष्पादन योग्य द्वारा बनाए गए थे जिन्हें मैं हटाना चाहता था। निम्न आदेश ने यह करना आसान बना दिया:

Remove-NetFirewallRule -DisplayName "*mongod.exe"



1

PowerShell के बिना आप केवल रीस्ट्रक्स का उपयोग फ़ेसट्रस्ट के साथ कर सकते हैं:

netsh advfirewall firewall show rule name=all | findstr /R "sql.*"

0

यह वास्तव में एक कोट-पूंछ का जवाब है लेकिन एक टिप्पणी बिंदु को अस्पष्ट करेगी।

यह भी थोड़ा अलग प्रश्न का उत्तर दे रहा है: मैं कैसे उपयोग कर सकता हूं और अभी भी नियम नहीं खोज सकता हूं netsh? :-)

मुझे लगता है कि पॉवरशेल मुहावरे में रहना सबसे अच्छा है अगर आप वहां पहले से ही हैं, और आप उसमें रेगेक्स सहित पूर्ण पैटर्न मिलान क्षमता का उपयोग कर सकते हैं ।

इसकी खातिर, मैंने कुछ सशर्त और उत्परिवर्तन को यह दिखाने के लिए शामिल किया कि सभी पावरस्ले निर्माण कार्यात्मक-शैली के ब्लॉक में कैसे एम्बेड किए जा सकते हैं।

अंतिम चेतावनी कि म्यूटेशन को प्रशासनिक अधिकारों के साथ चलाया जाना चाहिए, जहां रीड की आवश्यकता नहीं है।

(New-Object -ComObject HNetCfg.FwPolicy2).rules |
    Where-Object { $_.Name -match '^SQL.+$' } |
    ForEach-Object { Write-Output "Checking $($_.Name)"
      if ( $_.Enabled ) { Write-Output "$($_.Name) already enabled" }
      else { Write-Output "$($_.Name) enabled"; $_.Enabled = $true }
    }                                                              
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.