Starting Win32 Service

G

Gabriel Genellina

Using Tim Golden's wmi module you can get the service names
but how do i start services that are stopped?

Surely there are fancier ways:
>net start servicename



Gabriel Genellina
Softlab SRL





__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas
 
P

placid

Tim said:
[placid]
| Using Tim Golden's wmi module you can get the service names
|
| import wmi
| c = wmi.WMI ()
| stopped_services = c.Win32_Service (StartMode="Auto", State="Stopped")
| if stopped_services:
| for s in stopped_services:
| print s.Caption, "service is not running"
| else:
| print "No auto services stopped"
|
| but how do i start services that are stopped?

<code>
import wmi
c = wmi.WMI ()
for method in c.Win32_Service._methods:
print method

#
#... includes StartService
#

print c.Win32_Service.StartService

# <function StartService () => (ReturnValue)>

#
# Therefore, to start all non-running auto services (!)
#
for service in c.Win32_Service (StartMode="Auto", State="Stopped"):
print service.Caption
service.StartService ()

</code>

TJG

Thanks for that.

Now i was trying to use service.ChangeStartMode but each time i pass in
an argument i get the error;

#TypeError: __call__() takes exactly 1 argument (2 given)

but;
<function ChangeStartMode (StartMode) => (ReturnValue)>

ChangeStartMode needs an argument!

What im i doing wrong here?

Cheers
 
P

placid

placid said:
Tim said:
[placid]
| Using Tim Golden's wmi module you can get the service names
|
| import wmi
| c = wmi.WMI ()
| stopped_services = c.Win32_Service (StartMode="Auto", State="Stopped")
| if stopped_services:
| for s in stopped_services:
| print s.Caption, "service is not running"
| else:
| print "No auto services stopped"
|
| but how do i start services that are stopped?

<code>
import wmi
c = wmi.WMI ()
for method in c.Win32_Service._methods:
print method

#
#... includes StartService
#

print c.Win32_Service.StartService

# <function StartService () => (ReturnValue)>

#
# Therefore, to start all non-running auto services (!)
#
for service in c.Win32_Service (StartMode="Auto", State="Stopped"):
print service.Caption
service.StartService ()

</code>

TJG

Thanks for that.

Now i was trying to use service.ChangeStartMode but each time i pass in
an argument i get the error;

#TypeError: __call__() takes exactly 1 argument (2 given)

but;
<function ChangeStartMode (StartMode) => (ReturnValue)>

ChangeStartMode needs an argument!

What im i doing wrong here?

And to answer my own question, the way to pass in arguments is via the
key=value way so;

service.ChangeStartMode(StartMode = "Automatic")

Cheers

P.S: Dont you just love trial and error/brute force?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,044
Latest member
RonaldNen

Latest Threads

Top