PDA

View Full Version : راهنمایی برای متوقف کردن سرویس ویندوز؟!!



Heidari66
پنج شنبه 04 خرداد 1391, 18:40 عصر
سلام

برای متوقف کردن سرویس خاصی از این کد استفاده میکنم:
ولی موقع اجرا این خطا رو میده: 'Cannot stop Power service on computer '.'.
راهی برای متوقف کردن سرویس هایی که قابلیت توقف ندارن هست؟!



Imports System.ServiceProcess
Public Class Form1
Dim controller As New ServiceController
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
controller.MachineName = "."
controller.ServiceName = "Power"
Dim status As String = controller.Status.ToString


controller.Stop()

'Cannot stop Power service on computer '.'.


End Sub


End Class

فرید نجفلو
شنبه 06 خرداد 1391, 17:05 عصر
سلام
دوست عزیز بعضی از سرویس ها هستن که برای ادامه کار سیستم حیاتی هستن و شما نباید اونها رو متوقف کنید
در مواردی هم به شما اجازه این کار داده نمی شه حتی اگر با یه یوزر مدیر سیستم وارد بشید چون اون سرویس با یک کاربری با مجوز بیشتر (حساب System) اجزا می شه

حالا شما چه نیازی به متوقف کردن این نوع سرویس ها دارید؟

Heidari66
شنبه 06 خرداد 1391, 20:38 عصر
سلام دوست عزیز
برای مثال سرویس ویندوز POWER رو نوشتم
در کل بعضی از نرم افزارها مثل آنتی ویروس ها سرویسی دارن که متوقف نمیشه ، ولی نرم افزاری دیدم که اینکارو میکرد
یعنی سرویس غیرقابل توقف رو متوقف میکرد!!!
میخواستم ببینم کامپوننت یا کدی هست که اینکارو بکنه؟!

hakim22
دوشنبه 08 خرداد 1391, 19:25 عصر
اصولا دات نت برای به خطر انداختن ویندوز طراحی نشده و اصل قضیه هم همون هماهنگی و پایداریش در محیط ویندوزه
برای اینکه یک سرویس رو متوقف کنید باید در ورد مبنای کار سرویس ها اطلاعات دقیق داشته باشید.
کار نشد نداره !
در مورد ساختار سیستم عامل ویندوز مطالعه کنید.

M.KH-SH
دوشنبه 08 خرداد 1391, 19:50 عصر
دوست عزیز میتونی با استفاده از فرمان taskkill / f/ im ... در shell command استفاده کنی

به جای نقطه چین ها اون سرویس رو بنویس

فرید نجفلو
دوشنبه 08 خرداد 1391, 19:59 عصر
سلام
درسته کار نشد نداره ولی بعضی کار ها ممکنه به ضحمتش نچربه
ببینید اصلا بعضی سرویس و تسک ها حتی با Service Manager و TaskManager هم بسته نمی شن
حتی اگه بعضی ها رو ببندی سیستم یه timeout هم می ده و سیستم ریسیت میشه (با اینکه با cmd قبل کنسل هست ) مثلا همین svchost

M.KH-SH
دوشنبه 08 خرداد 1391, 20:20 عصر
درسته ولی میشه جلوی ریست رو گرفت فقط همون بهتر هست که ریست بشه ویندوز رو از شکل و ریخت میندازه :دی

فرید جان به نظر شما چطور میشه برنامه رو جوری ساخت که مثل همین svchost بعد از بسته شدن دستور ریست بده یا اصلا بسته نشه

حالا برای ریست میگیم میشه از event ها استفاده کرد ولی برای اینکه به صورت یک فایل سیستمی باشه باید چه کاری کرد؟

Heidari66
دوشنبه 08 خرداد 1391, 20:29 عصر
توسط یه پلاگین تو Nsis میشه اینکارو بی هیچ زحمتی انجام داد...
اینجا رو ببینید : http://nsis.sourceforge.net/NSIS_Simple_Service_Plugin
البته روش کار نکردم ، ولی برنامه ای دیدم توسط همین پلاگین اینکارو میکرد...

روی کارکرد سرویس ها تحقیق کردم ولی به نتیجه ای نرسیدم :متفکر:
این سرویس ها Not Stoppable هستند ، اینو توی CMD بزیند:
sc queryex power

barbodsoft.com
دوشنبه 08 خرداد 1391, 22:01 عصر
لسیت سرویس ها رو از کجا می شه به دست آورد؟

فرید نجفلو
دوشنبه 08 خرداد 1391, 22:37 عصر
سلام
لیست کلیه سرویس هی موجود اعم از در حال اجرا و متوقف :

Imports System.ServiceProcess

Imports System.ServiceProcess

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

Dim RuningSrvcLs As New List(Of ServiceController)
For Each srvc In ServiceController.GetServices()
If srvc.Status = ServiceControllerStatus.Running Then
RuningSrvcLs.Add(srvc)
End If
Next

Heidari66
سه شنبه 09 خرداد 1391, 17:16 عصر
دوستان روشی برای اینکار پیدا نکردید؟! :ناراحت:

اینو امتحان کردم ، بازم جواب نداد:
http://www.netspi.com/blog/2010/03/26/penetration-testing-stopping-an-unstoppable-windows-service/

koorosh-soft
چهارشنبه 10 خرداد 1391, 01:37 صبح
میتونی از دستور

SC STOP Servicename استفاده کنی ! CMD

Heidari66
چهارشنبه 10 خرداد 1391, 11:36 صبح
میتونی از دستور

SC STOP Servicename استفاده کنی ! CMD

خسته نباشی :لبخند:
این سرویس که گفتم با این روش ها متوقف نمیشه...
خطا میده...