خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


لیست کردن پردازش های در حال اجرا سایر سیستم ها در شبکه دامین

لیست کردن پردازش های در حال اجرا سایر سیستم ها در شبکه دامین
در مطلب قبلی در خصوص دریافت لیست از TCP Connection های فعال برای کامپیوترهای ریموت تحت دامین صحبت کردیم. لیستی از TCP Connection های فعال کامپیوترهای دیگر در شبکه دامین را بدست آوردیم. امروز و در این مطلب قصد داریم پردازش ها یا Process های کامپیوترهای دیگر در شبکه را بدست آوریم. به دست آوردن لیستی از فرایندهای در حال اجرا در تمام کلاینت ها یک کار معمول است که معمولاً در تحقیقات حمله ویروس، تجزیه و تحلیل عملکرد و سایر پروژه ها لازم است. Win32 روشهای مختلفی را برای لیست کردن فرآیندهای در حال اجرا فراهم می کند. متأسفانه، هیچ روشی واحد برای کار در همه پلتفرم های Win32 وجود ندارد. برنامه نویسان باید چندین روش را در یک برنامه ترکیب کنند تا در همه نسخه های ویندوز کار کند. اطلاعات مربوط به اجرای پردازش های سیستم باید شامل نام فرآیند ویندوز(process name)، شناسه فرآیند(process ID)، مکان فایل اجرایی(executable file location) و برخی داده های دیگر باشد.

نرم افزار سامانه مودیان راهکار




در سیستم تان PowerShell را اجرا کرده و سپس دستور زیر را در آن وارد کنید. حتما به جای RemoteComputerName نام کامپیوتر مقصد مورد نظرتان را جایگزین کنید:

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Process -Computer RemoteComputerName | Select-Object Name, ProcessId, PSComputerName

در خروجی دستور فقط نام پردازش، PID و نام کامپیوتر مقصد که در دستور بدان داده ایم، نمایش داده می شود.
حالا قصد داریم خروجی دستور را Sort کنیم. مرتب سازی بر اساس Name نام پردازش ها انجام خواهد شد. البته شما می توانید بر اساس دیگری مرتب سازی را انجام دهید.

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Process -Computer RemoteComputerName | Select-Object Name, ProcessId, PSComputerName | Sort-Object Name

در دستور زیر فقط بر اساس یک پردازش خاص که نام آن را قید می کنیم، خروجی می گیریم. مثلا در دستور زیر پردازش های مربوط به نرم افزار putty که در سرور مقصد اجرا شده، خروجی می گیریم. شما هم می توانید بر اساس برنامه، ابزار یا فرآیند مورد نظرتان خروجی بگیرید.

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Process -Computer RemoteComputerName | Select-Object Name, ProcessId, PSComputerName | Where-Object -FilterScript {$_.Name -like "putty.exe"}

بدیهی است که از دستورات فوق امکان خروجی CSV گرفتن هم وجود دارد.

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Process -Computer RemoteComputerName | Select-Object Name, ProcessId, PSComputerName | Export-CSV "c:\file.csv" -Append -NoTypeInformation

در دستور فوق مسیر مورد نظر و نام فایل csv مورد نظرتان را جایگزین کنید. ضمنا برای تهیه CSV از دستورات قبلی و همین طور بعدی، فقط کافیست از Export-CSV به همراه مسیر ذخیره سازی فایل CSV استفاده کنید.
حالا قصد داریم روی چندین کامپیوتر در شبکه خروجی پردازش های در حال اجرا را بگپیریم.
در روش اول شما در یک فایل متنی نام کامپیوترها را تایپ و Save می کنید(نام کامپیوترها را زیر هم تایپ کنید). سپس فایل را به دستور زیر پاس دهید تا پردازش های در حال اجرا روی آن سیستم ها نمایش داده شود:

Get-Content -Path c:\computers.txt | ForEach-Object {Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Process -Computer $_}  | Select-Object Name, ProcessId, PSComputerName

اما روش دیگری هم وجود دارد. در این روش ما از کامپیوترهای ویندوز 10، پردازش های در حال اجرا می گیریم. اگر به دستور زیر دقت کنید، صراحتا ویندوز 10 قید شده است.

Get-ADComputer -Filter {OperatingSystem -Like 'Windows 10*'} | ForEach-Object {Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Process -Computer $_.Name} | Select-Object Name, ProcessId, PSComputerName

در دستور زیر که دقیقا مشابه دستور فوق است، هدف ما پردازش های در حال اجرا روی ویندوز سرورهای شبکه است.

Get-ADComputer -Filter {OperatingSystem -Like '*server*'} | ForEach-Object {Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Process -Computer $_.Name} | Select-Object Name, ProcessId, PSComputerName

اگر تمایلی به نشان دادن خروجی دستور در Powershell ندارید، می توانید خروجی CSV بگیرید.

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز