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


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

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

نرم افزار سامانه مودیان راهکار
فقط حدود 80 سرویس مختلف با نصب ویندوز در سیستم نصب شده است. ضمن اینکه همه این سرویس ها بصورت پیشفرض در وضعیت اجرا نیستند و پیشنهاد می شود سرویس هایی که استفاده نمی کنید را غیرفعال کنید. در شبکه ها، بعضا فعال بودن یک سرویس خاص منجر به بروز مشکلی ممکن است شود که باید آن را غیرفعال کنید و یا غیرفعال بودن سرویسی ممکن است کامپیوتر آن کاربر را از دریافت خدمات ارائه شده محروم کند. از این رو باید لیستی از سرویس های موجود در آن سیستم را در اختیار داشته باشید تا بتوانید درست تصمیم گیری کنید.




در ساده ترین حالت با کمک دستور زیر می توانید لیست کاملی از همه سرویس ها در همه وضعیت های موجود یکی از کامپیوترهای موجود در شبکه را بدست آورید. بدیهی است که در این دستور و دستورات بعدی، باید به جای Remotecomputername نام کامپیوتر مورد نظرتان را جایگزین کنید:

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Service -Computer RemoteComputerName

اما ما قصد درایم خروجی را کمی شسته رفته تر و خوانا تر بدست آوریم. پس مشخص می کنیم که چه چیزی در خروجی دستور مورد نیاز ما است. مثلا نام سرویس، وضعیت استارت بودن و کامپیوتر مقصد، چیزی است که مورد نیاز ماست:

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Service -Computer RemoteComputerName | Select-Object DisplayName, Started, StartMode, PSComputerName

در خروجی دستور فوق، سرویس های سیستم های مقصد با هر وضعیتی نمایش در یک جدول لیست می شوند.
حالا در دستور زیر بر اساس نام سرویس، قصد درایم خروجی را Sort کنیم که صد البته شما بر اساس چیز دیگری می توانید آنها را مرتب سازی کنید:

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Service -Computer RemoteComputerName | Select-Object DisplayName, Started, StartMode, PSComputerName | Sort-Object DisplayName

حالا قصد درایم فیلتر به کوئری خود اضافه کنیم تا بر اساس آن جستجو انجام شده و خروجی نمایش داده شود. مثلا سرویس هایی که نام آنها با Microsoft شروع شده است:

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Service -Computer RemoteComputerName | Select-Object DisplayName, Started, StartMode, PSComputerName | Where-Object -FilterScript {$_.DisplayName -like "Microsoft*"}

سرویس هایی که وضعیت آنها Stop است:

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Service -Computer RemoteComputerName | Select-Object DisplayName, Started, StartMode, PSComputerName | Where-Object -FilterScript {$_.Started -like "false"}

سرویس هایی که در حال اجرا Start هستند:

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Service -Computer RemoteComputerName | Select-Object DisplayName, Started, StartMode, PSComputerName | Where-Object -FilterScript {$_.Started -like "true"}

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

Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Service -Computer RemoteComputerName | Select-Object DisplayName, Started, StartMode, PSComputerName | Export-CSV "c:\file.csv" -Append -NoTypeInformation

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

Get-Content -Path c:\computers.txt | ForEach-Object {Get-WmiObject -Namespace ROOT\CIMV2 -Class Win32_Service -Computer $_}  | Select-Object DisplayName, Started, StartMode, PSComputerName

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

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

در دستور زیر فقط ویندوزهای سرور هدف ما هستند و در خروجی نمایش داده می شوند:

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

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

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

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


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