How to remove a service or change the startup type to disabled

Tim Golden tim.golden at viacom-outdoor.co.uk
Mon Sep 1 03:53:55 EDT 2003


matthew.rapoport at accenture.com (Matt Rapoport) wrote in message news:<4150f6c8.0308291044.2fb26d32 at posting.google.com>...
> I'd like to programmatically remove a service or change its startup
> type to disabled.  I know how to remove it from the command line but
> is there another way using the win32 extensions?

Three answers:

1) The win32service module has a load of constants 
for this sort of purpose. Do dir (win32service) 
and look for things in capitals. At the moment, 
I'll leave anyone else on the list who's had experience 
of this to answer specifics.

2) Look at:

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/115875

3) Use wmi. Get the wmi module from

http://tgolden.sc.sabren.com/python/wmi.html 

and then do something like this:

<code>

import wmi

c = wmi.WMI () # or c = wmi.WMI ("other_computer")
for service in c.Win32_Service (Name="unuseful_service"):
  service.ChangeStartMode (StartMode="Automatic")
for service in c.Win32_Service (Name="unwanted_service"):
  service.Delete ()

</code>

The loops are just a fudge for the fact the the wmi 
query always returns a list, albeit of length one. You
could equally well do:

service = c.Win32_Service (Name="unuseful_service")[0]

although this has the disadvantage (or, possibly, advantage)
of raising an exception if there is no such service.

TJG




More information about the Python-list mailing list