Computer >> कंप्यूटर >  >> प्रणाली >> Windows Server

पावरशेल के साथ विंडोज़ पर सक्रिय टीसीपी/आईपी कनेक्शन की जांच करना

कई व्यवस्थापक आमतौर पर netstat . का उपयोग करते हैं कंसोल टूल या ग्राफिक TCPView सक्रिय टीसीपी/आईपी कनेक्शन के बारे में जानकारी प्रदर्शित करने और विंडोज़ में टीसीपी पोर्ट खोलने के लिए। नेटस्टैट के बजाय, आप Get-NetTCPConnection . का उपयोग कर सकते हैं Windows में सक्रिय नेटवर्क कनेक्शन, खुले TCP पोर्ट और TCP/IP प्रोटोकॉल का उपयोग करने वाली चल रही प्रक्रियाओं के बारे में जानकारी प्राप्त करने के लिए PowerShell में cmdlet। पावरशेल जानकारी प्राप्त करने और खुले टीसीपी पोर्ट, प्रक्रियाओं और स्थापित नेटवर्क कनेक्शन की निगरानी के लिए जटिल स्क्रिप्ट लिखना आसान बनाता है।

Get-NetTCPConnection को चलाने का प्रयास करें बिना किसी विकल्प के आदेश दें।

पावरशेल के साथ विंडोज़ पर सक्रिय टीसीपी/आईपी कनेक्शन की जांच करना

नेटस्टैट की तरह, कमांड ने स्थानीय और दूरस्थ आईपी पते, पोर्ट, कनेक्शन स्थिति के साथ सभी सक्रिय कनेक्शनों की सूची प्रदर्शित की है (सुनो , स्थापित इंटरनेट , टाइमवेट , बाध्य , बंद प्रतीक्षा करें , SynReceived , SynSent ), और प्रक्रिया आईडी (PID) जो इस TCP कनेक्शन का उपयोग कर रही है।

आप अपने स्थानीय कंप्यूटर पर खुले (सुनने वाले) पोर्ट की सूची प्रदर्शित कर सकते हैं:

Get-NetTCPConnection -State Listen | Select-Object -Property LocalAddress, LocalPort, RemoteAddress, RemotePort, State | Sort-Object LocalPort |ft

पावरशेल के साथ विंडोज़ पर सक्रिय टीसीपी/आईपी कनेक्शन की जांच करना

Get-NetUDPEndpoint cmdlet का उपयोग UDP पोर्ट के बारे में जानकारी प्राप्त करने के लिए किया जाता है।

आप केवल बाहरी (इंटरनेट) कनेक्शन प्रदर्शित कर सकते हैं:

Get-NetTCPConnection -AppliedSetting Internet

आप दूरस्थ होस्ट के DNS नाम प्रदर्शित कर सकते हैं और TCP कनेक्शन के लिए नाम संसाधित कर सकते हैं:

Get-NetTCPConnection -State Established |Select-Object -Property LocalAddress, LocalPort,@{name='RemoteHostName';expression={(Resolve-DnsName $_.RemoteAddress).NameHost}},RemoteAddress, RemotePort, State,@{name='ProcessName';expression={(Get-Process -Id $_.OwningProcess). Path}},OffloadState,CreationTime |ft

इस पॉवरशेल स्क्रिप्ट ने सभी होस्ट आईपी पते को DNS नामों और सभी कनेक्शनों के लिए निर्दिष्ट प्रक्रिया नामों को हल किया।

पावरशेल के साथ विंडोज़ पर सक्रिय टीसीपी/आईपी कनेक्शन की जांच करना

पेरेंट प्रक्रिया पीआईडी ​​के नाम से, आप नेटवर्क का उपयोग करने वाली संबंधित विंडोज़ सेवाओं की सूची प्रदर्शित कर सकते हैं:

Get-WmiObject Win32_Service | Where-Object -Property ProcessId -In (Get-NetTCPConnection).OwningProcess | Where-Object -Property State -eq Running | Format-Table ProcessId, Name, Caption, StartMode, State, Status, PathName

आप केवल विशिष्ट प्रक्रिया द्वारा शुरू किए गए नेटवर्क कनेक्शन देख सकते हैं। ऐसा करने के लिए, आप निम्न PowerShell स्क्रिप्ट का उपयोग कर सकते हैं:

$TrackProcessName = "*chrome*"
$EstablishedConnections = Get-NetTCPConnection -State Established |Select-Object -Property LocalAddress, LocalPort,@{name='RemoteHostName';expression={(Resolve-DnsName $_.RemoteAddress).NameHost}},RemoteAddress, RemotePort, State,@{name='ProcessName';expression={(Get-Process -Id $_.OwningProcess). Path}}, OffloadState,CreationTime
Foreach ($Connection in $EstablishedConnections)
{
If ($Connection.ProcessName -like $TrackProcessName)
{
$Connection|ft
}
}

आप विभिन्न परिदृश्यों में Get-NetTCPConnection cmdlet का उपयोग कर सकते हैं। उदाहरण के लिए, आप यह ट्रैक करने के लिए एक साधारण पावरशेल स्क्रिप्ट बना सकते हैं कि विशिष्ट आईपी पते से निर्दिष्ट स्थानीय पोर्ट पर कनेक्शन स्थापित है या नहीं और व्यवस्थापक को एक पॉप-अप सूचना प्रदर्शित करें।

निम्नलिखित उदाहरण में, एक पावरशेल स्क्रिप्ट जांचता है कि निर्दिष्ट आईपी पते से एक कनेक्शन डिफ़ॉल्ट आरडीपी पोर्ट 3389 पर दिखाई देता है या नहीं। यदि कनेक्शन दिखाई देता है, तो स्क्रिप्ट एक पॉप-अप अधिसूचना प्रदर्शित करेगी और कनेक्शन की तारीख और समय को लॉग करेगी। टेक्स्ट फ़ाइल:

$SourceIP = “192.168.13.125”
$TargetPort =”3389”
$log = "C:\PS\rdp_connection_log.txt"
$EstablishedConnections = Get-NetTCPConnection -State Established
Foreach ($Connection in $EstablishedConnections)
{
If (($Connection.RemoteAddress -eq $SourceIP) -and ($Connection.LocalPort -eq $TargetPort))
{
Add-Type -AssemblyName System.Windows.Forms
$global:balmsg = New-Object System.Windows.Forms.NotifyIcon
$path = (Get-Process -id $pid).Path
$balmsg.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Warning
$balmsg.BalloonTipText = "New RDP connection to your computer from $($Connection.RemoteAddress)"
$balmsg.BalloonTipTitle = "New RDP connection from ($Connection.RemoteAddress)"
$balmsg.Visible = $true
$balmsg.ShowBalloonTip(10000)
(Get-Date).ToString() + ' ' + $Connection.RemoteAddress + ' an RDP connection is established ' >> $log
}
}

पावरशेल के साथ विंडोज़ पर सक्रिय टीसीपी/आईपी कनेक्शन की जांच करना

उसी तरह, आप एसएसएच, एसएमबी, एफ़टीपी, एसएमटीपी, आदि जैसे किसी भी अन्य प्रोटोकॉल पर नेटवर्क कनेक्शन की निगरानी और लॉग इन कर सकते हैं। इस पावरशेल स्क्रिप्ट को विंडोज़ सेवा में परिवर्तित किया जा सकता है जो स्वचालित रूप से शुरू हो जाएगा।

आप स्क्रिप्ट का उपयोग उस स्क्रिप्ट के साथ कर सकते हैं जिसकी हमने पहले चर्चा की थी:RDP Brute Force Attack Protection with Powershell।

आप PowerShell रिमोटिंग cmdlets (Enter-PSSession and Invoke-Command) का उपयोग करके दूरस्थ कंप्यूटर पर खुले TCP पोर्ट और कनेक्शन की सूची प्राप्त कर सकते हैं।

Invoke-Command -ComputerName be-dc01 {Get-NetTCPConnection -State Established}

गेट-नेटटीसीपीकनेक्शन cmdlet (साथ ही टेस्ट-नेटकनेक्शन) विंडोज़ में नेटवर्क कनेक्शन को ट्रैक और निदान करने के लिए बहुत उपयोगी हो सकता है।


  1. पावरशेल के साथ विंडोज प्रक्रियाओं का प्रबंधन

    स्थानीय या दूरस्थ कंप्यूटर पर प्रक्रियाओं को प्रबंधित करने के लिए PowerShell में बहुत सारी सुविधाएँ हैं। पावरशेल का उपयोग करके, आप चल रही प्रक्रियाओं की एक सूची प्राप्त कर सकते हैं, एक रुकी हुई प्रक्रिया को निलंबित कर सकते हैं, एक विंडोज़ शीर्षक द्वारा एक प्रक्रिया ढूंढ सकते हैं, एक छिपी या इंटरैक्ट

  1. PowerShell या Wevtutil का उपयोग करके Windows ईवेंट लॉग को कैसे साफ़ करें

    कुछ मामलों में कंप्यूटर या सर्वर पर विंडोज इवेंट लॉग से सभी प्रविष्टियों को हटाना आवश्यक है। बेशक, आप इवेंट व्यूअर कंसोल GUI से सिस्टम लॉग साफ़ कर सकते हैं—  Eventvwr.msc (उस लॉग पर राइट-क्लिक करें जिसे आप साफ़ करना चाहते हैं और लॉग साफ़ करें select चुनें ) हालाँकि, विस्टा से शुरू होकर, विंडोज विभिन

  1. Windows PowerShell Scripts के साथ अपनी उत्पादकता बढ़ाएँ

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