আমি কীভাবে কোনও প্যাটার্ন ব্যবহার করে কোনও নিয়ম খুঁজে পেতে নেট ব্যবহার করতে পারি


10

আমি ভাবছি মাইক্রোসফ্টের কেউ কি এমন পরিস্থিতিতে এসেছিল যে তারা কোনও নিয়মের নাম মনে করতে পারে না! তো গ্রহণ করেন 1 নাম এবং কোন প্যাটার্ন ম্যাচিং সুবিধা মত একটি প্যাটার্ন ব্যবহার করে একটি নিয়ম খুঁজে পেতে সাহায্য করার netsh পাওয়া যায় বা প্রদর্শনী ব্যবহার করে এবং এটা সব নিয়ম তালিকা করা সম্ভব কিন্তু আমি উইন্ডোগুলির একটি কঠিন কম্যান্ড-লাইন, grep টুল খুঁজে পেতে অসমর্থ ছিল।
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"; তবে আউটপুট এবং নিয়ন্ত্রণটি যেমন হওয়া উচিত ততটা সন্তোষজনক নয়। এটি বরং অগোছালো এবং আরও খারাপ, কেস-সংবেদনশীল ...
অ্যাকিলিস

মনে নিম্নলিখিত লিঙ্ক সাহায্য করতে পারে blogs.technet.com/b/jamesone/archive/2009/02/18/...
টনি Roth

পাওয়ারশেল ব্যবহার করা অন্য বিকল্প; হ্যাঁ. কিন্তু যদি আপনি এটি একটি দূরবর্তী মেশিনে করতে চান? পিএসের জন্য দূরবর্তী বন্দরগুলি খোলা রাখা এবং বিভিএসএসএস সার্ভারের মতো আইডিএস / আইপিএস থাকা কি সম্ভব? আমি উইন্ডোজ এর নেটিভ কমান্ড প্রম্পটে উপলভ্য কিছু সন্ধান করছি।
অ্যাকিলিস

দেখে মনে হচ্ছে এসএসএল ব্যবহার করে পিএস সুরক্ষিত করা সম্ভব: টেকনেট.মাইক্রোসফট.ফেন
অ্যাকিলিস

আমি দেখেছি যে, ব্যবহার /Iসঙ্গে FINDকমান্ড, আমি কেস সংবেদনশীল সমস্যা ছল করতে পারেন; তবে ফলাফলটি এখনও অগোছালো ...
অ্যাকিলিস

উত্তর:


10

পাওয়ারশেল রান:

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

এখনো ভাল:

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

1
$ fw.rules | যেখানে-অবজেক্ট {$ _। সক্ষম করা হয়েছে -eq $ সত্য-এবং $ _ দিকনির্দেশ -eq 1 me আমাকে এটিতে পৌঁছতে সহায়তা করেছে (অভ্যন্তরীণ সক্ষম)।
ব্র্যাচ

1
আরও, আপনি নিয়মের কয়েকটি নির্দিষ্ট বৈশিষ্ট্য নির্বাচন করতে পারেন। $fw.Rules | where-object {$_.Enabled -eq $true -and $_.Direction -eq 1} | Select-Object -property name, direction, enabled
ড্যান প্রিটস

1
আমি বিভ্রান্ত, এটি একটি নেট প্রম্পটে চালানো বোঝানো হয়? নাকি অন্য কিছু পরিবেশ?
jjxtra

এটি পাওয়ারশেল প্রম্পটে বা পাওয়ারশেল (.ps1) স্ক্রিপ্টের অংশ হিসাবে চালাতে হবে। New-Objectপাওয়ারশেল সিনট্যাক্স এবং অবজেক্ট স্ট্রাকচার সংরক্ষণ করার সময় একটি পাওয়ারশেল সেমিডলেট যা অনেক পুরানো সিওএম এপিআইতে অ্যাক্সেস সরবরাহ করে।
বেসজেন

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"


2

আপনি নির্বাচন-স্ট্রিং চেষ্টা করতে পারেন :

netsh advfirewall firewall show rule name=all | select-string -pattern "Hyper-V"

1
এই সমাধানটির কাজ করার জন্য আপনি প্রয়োজনীয় পরিস্থিতিতে রয়েছেন কিনা তা যাচাই না করে দয়া করে নীচে নামবেন না।
লাউল জি।

1

পাওয়ারশেল ব্যতীত আপনি ফাইন্ডস্ট্রেটের সাহায্যে কেবল রেজেেক্স ব্যবহার করতে পারেন:

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 }
    }                                                              
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.