windows

آموزش Start ، Stop و یا Restart سرویس های ویندوز بوسیله پاورشل

شما می توانید سرویس های مختلف ویندوز را با دسترسی ادمین لوکال و یا با سطح کنترل بالا Stop ، Start و یا ری استارت کنید، این کار بارها برای حل مشکلات ویندوز و سرویس های آن انجام می شود.

حال چگونه می توان اسکریپتی ایجاد کرد که بصورت خودکار بر روی سیستم لوکال و یا بصورت ریموت این کار را انجام بدهد ؟

بعنوان مثال در یک پرینتر اشتراک گذاری شده از یک سیستم برای چند سیستم دیگر اختلال سرویس Printer Spooler ایجاد شده است، کاربر باید بتواند با سطح دسترسی لازم این سرویس را بر روی سیستم خود Restart کند ، همچنین سیستم میزبان که پرینتر به آن متصل شده ابتدائا باید Restart شود.

در نتیجه می توان اسکریپتی در اختیار کاربر قرار داد تا بتواند توسط آن ابتدائا “سرویس Spooler” سیستم میزبان پرینتر سپس سیستم لوکال خود را Restart کند. همچنین کاربر باید دسترسی Administrator اجرای اسکریپت را داشته باشد و درصورتی که بخواهد این سرویس را برای سیستم دیگری ری استارت کند پسوورد ادمین لوکال هر دو سیستم باید یکسان باشند.

در ابتدا می دانیم Standard User های درون شبکه دسترسی کافی برای اجرای اسکریپت و ری استارت سرویس های ویندوز را ندارند. در صورتی که نخواهیم دسترسی Administrator را به استاندارد یوزر درون شبکه بدهیم می توانیم از نرم افزار هایی استفاده کنیم تا تنها همان اسکریپت را با دسترسی لازم اجرا کند.

نرم افزار ” RunAsTool ” این قابلیت را در Editor خود دارد که فایل های مشخص شده ای را برای استاندارد یوزرها با یک کلیک با دسترسی Administrator اجرا کنند.

همچنین برای اجرای فایل اسکریپت پاورشل .ps1 در نرم افزار RunAsTool نیاز به تبدیل آن به Exe داریم ، برای اینکار نیز می توان از نرم افزار ” Ps1 to Exe ” استفاده کرد.

در گام اول ، پرینتر به سیستم Host متصل شده و سیستم Client ارتباط با پرینتر اشتراک گذاری شده را در اختیار دارد. می خواهیم توسط اسکریپتی از درون سیستم کلاینت سرویس Spooler در هر دو سیستم را ری استارت کنیم.

دستورات پاورشل برای ری استارت سرویس Spooler در Host و Client:

Restart-Service -InputObject $(Get-Service -ComputerName "Host Computer name" -Name spooler) -Force
Restart-Service -Name Spooler -Force

با وارد کردن دستور فوق در نرم افزار Ps1 to Exe از این دستورات یک خروجی Exe نیز دریافت کنید و برای اجرای این سناریو به این فایل Exe نیاز داریم.

حالا نرم افزار RunAsTool را باز کرده و در ادیتور آن (با وارد کردن پسوورد Local Administrator سیستم) فایل Exe را قرار دهید. می توانید یک میانبر از این فایل Exe بر روی دسکتاپ کاربر ایجاد کنید (با فرمت .lnk) کاربر عادی هر بار با کلیک برروی این فایل سرویس سیستم های ذکر شده را Restart می کند.

اگر بخواهید سرویس دیگری در ویندوز Stop ، Start یا Restart کنید از فرامین Start-Service ، Stop Service و Restart-Service استفاده کنید و آن را در دستورات بالا قرار دهید. همچنین برای قرار دادن نام سرویس مدنظر بعد از سوئیچ -name نام سرویس را در دستور فوق قرار دهید. برای بدست اوردن نام سرویس ها از دستور زیر استفاده کنید:

Get-Service

۵ ۳ رای دادن
رای دادن به مقاله
اشتراک در
اشاره به موضوع
guest
1 دیدگاه
جدیدترین
قدیمی ترین نظرات با تعداد رای بالا
Inline Feedbacks
مشاهده همه کامنت ها
میثم
میثم
4 ماه پیش

سلام
من میخوام تو این دستور

Restart-Service -Name Spooler -Force

سرویس رو تو یه تایم مشخص ریست کنم باید چی کار کنم

دکمه بازگشت به بالا