Script การปิด-เปิด window services
กระทู้เก่าบอร์ด อ.Yeadram

 6,077   5
URL.หัวข้อ / URL
Script การปิด-เปิด window services

เครื่องของผม แรมน้อย ซีพียูต่ำ แต่ด้วยความที่ชอบลองโปรแกรมสำหรับนักพัฒนาหลายๆ ตัวเพื่อศึกษาหาความรู้ ทำให้ต้องลงโปรแกรมหนักๆ (กินแรมหนัก) หลายๆ ตัว
และโปรแกรมเหล่านั้นเอง บางที่หลังจากได้ลองเล่น ลองศึกษาจนพอใจแล้วก็ไม่ได้ใช้อีก แต่ไม่อยากถอดโปรแกรมออกจากเครื่อง เผื่อว่าอาจได้ตัวอย่างใหม่ๆ มารัน แล้วต้องเรียกใช้ โปรแกรมพื้นฐานเหล่านั้นอีกครั้ง ผมจึงใช้วิธี เปิด-ปิด services เอาครับ เพื่อลดภาระการประมวลผลของเครื่อง
โปรแกรมพื้นฐานที่ว่า ก็ตัวอย่างเช่น
- ระบบโฮสต์ จำลอง IIS
- ระบบฐานข้อมูล MySQL
- ระบบฐานข้อมูล MSSQL

เพื่อความสะดวกรวดเร็วผมจึงเขียน script เป็นตัวเปิด-ปิด services เหล่านั้น
พร้อมทั้งตั้งค่า การ start ของมันให้สลับไปมาระหว่าง Automatic-manual-Disabled
สำหรับผม คิดว่า สะดวกดีครับ แต่สำหรับท่านอื่นๆ จะว่าอย่างไรกันบ้างล่ะครับ...?

นี่คือ สคริปต์ที่ผมใช้ครับ เป็น VBS นะครับ
-****************************************************-

function StartTypeDesc(N)
select case N
case 2
StartTypeDesc = "Automatic"
case 3
StartTypeDesc = "Manual"
case 4
StartTypeDesc = "Disabled"
end select
end function

function StatusDesc(N)
select case N
case 1
StatusDesc = "Stopped"
case 4
StatusDesc = "Running"
case 7
StatusDesc = "Puase"
end select
end function
'-------------------------------------------------------------------------------------------------------------------


Dim ar(4)
ar(0) ="MySQL"
ar(1)="MSSQLSERVER"
ar(2)="pml Driver HPZ12"
ar(3)="IISadmin"
ar(4)="Spooler"
Set oWshNet = CreateObject("WScript.Network")
Set oComp = GetObject("WinNT://" & oWshNet.ComputerName & ",computer")

msg = "ระบุชื่อ Services เช่น :"
for i = 0 to ubound(ar)
Set oSvc = oComp.GetObject("service", ar(i))
msg = msg & vbcrlf & "(" & StatusDesc(oSvc.status) & ") (" & StartTypeDesc(oSvc.StartType) & ")   " & ar(i)
set oSvc = nothing
next

svc= inputbox(msg,"Services's Name","MySQL")

if trim(svc)<>"" and isempty(svc)=false then
Set oWshNet = CreateObject("WScript.Network")
Set oComp = GetObject("WinNT://" & oWshNet.ComputerName & ",computer")
Set oSvc = oComp.GetObject("service", svc)

select case oSvc.status
case 1
runShell oSvc.Name,1
case 4
runShell oSvc.Name,0
case 7
runShell oSvc.Name,2
end select

Set oSvc = nothing
Set oComp = nothing
Set oWshNet = nothing
end if

function runShell(sv, n)
Set oShell =CreateObject("WScript.Shell")
select case n
case 0
oShell.run "net stop " & chr(34) & sv & chr(34)
oShell.run "sc config " & sv & chr(34) & " start= Disabled"

case 1
oShell.run "sc config " & chr(34) & sv & chr(34) & " start= Demand"
oShell.run "net start " & chr(34) & sv & chr(34)

case 2
oShell.run "net continue " & chr(34) & sv & chr(34)
end select

Set oShell = nothing
end function



5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R04560
แล้วมี script เปลี่ยนวันที่ server ไหมครับ อ.yeadram
2 @R04594
ไม่มีครับ
3 @R08581
ขอบคุณครับ ผมว่าเป็นแนวคิดที่ดีเลย สำหรับแก้ปัญหาเครื่องเก่า
4 @R09058
ดีมากๆคับ อยากได้อยู่พอดี
แต่เอาไปใช้ยังไง
ถ้าเป็น service ของ oracle เขียนยังไงคับ
เครื่องผมมีทั้ง SQL และ oracle
5 @R09204
ผมไม่มี oracle ไม่เคยใช้ด้วย
เลยไม่รู้ว่า services มันชื่อว่าอะไร ถ้ารู้ว่ามันชื่อว่าอะไรก็เอาชื่อมันไปเพิ่มใส่ใน array เลยครับ

วิธีหาชื่อ services

start>run พิมพ์ services.msc กด enter
พอเข้าสู่หน้าจอ services ก็ลองไล่ดูรายชื่อ ลองเดาเอาครับ ว่าตัวไหนที่เราต้องการ พอเจอรายการนั้นๆ แล้วให้ดับเบิ้ลคลิ๊กที่ชื่อมัน
จะมี dialog ขึ้นมา ดูที่แท็บแรกเลยครับ

จะมี services name : ดูตรงบรรทัดนี้เลยครับ
ระวังนะครับ services บางตัวจะมี name กับ display name ไม่เหมือนกัน
ตัวที่เราจะใช้คือ services name เท่านั้นนะครับ ไม่ใช่ display name

ลองๆ หาดูนะครับ

* คำเตือน การปิด services บางตัวอาจทำให้เครื่องคุณเสียหายได้ ถ้าไม่รู้จักมัน ถ้าไม่มั่นใจว่ามันคือ services อะไร ก็อย่าไปยุ่งกับมันนะครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2021s