Instead of always deleting whole registry keys to “clean up” Oracle software, there is also a normal statement on the command prompt to do this more effectively and in a more proper way. Only…I always forget what the statement was, so that’s why I post this now on this site…
C:\> ver Microsoft Windows XP [Version 5.1.2600] C:\> sc DESCRIPTION: SC is a command line program used for communicating with the NT Service Controller and services. USAGE: sc {server} [command] [service name] {option1} {option2}... The option {server} has the form "\\ServerName" Further help on commands can be obtained by typing: "sc [command]" Commands: query-----------Queries the status for a service, or enumerates the status for types of services. queryex---------Queries the extended status for a service, or enumerates the status for types of services. start-----------Starts a service. pause-----------Sends a PAUSE control request to a service. interrogate-----Sends an INTERROGATE control request to a service. continue--------Sends a CONTINUE control request to a service. stop------------Sends a STOP request to a service. config----------Changes the configuration of a service (persistant). description-----Changes the description of a service. failure---------Changes the actions taken by a service upon failure. qc--------------Queries the configuration information for a service. qdescription----Queries the description for a service. qfailure--------Queries the actions taken by a service upon failure. delete----------Deletes a service (from the registry). create----------Creates a service. (adds it to the registry). control---------Sends a control to a service. sdshow----------Displays a service's security descriptor. sdset-----------Sets a service's security descriptor. GetDisplayName--Gets the DisplayName for a service. GetKeyName------Gets the ServiceKeyName for a service. EnumDepend------Enumerates Service Dependencies. The following commands don't require a service name: sc {server} {command} {option} boot------------(ok | bad) Indicates whether the last boot should be saved as the last-known-good boot configuration Lock------------Locks the Service Database QueryLock-------Queries the LockStatus for the SCManager Database EXAMPLE: sc start MyService Would you like to see help for the QUERY and QUERYEX commands? [ y | n ]: y QUERY and QUERYEX OPTIONS : If the query command is followed by a service name, the status for that service is returned. Further options do not apply in this case. If the query command is followed by nothing or one of the options listed below, the services are enumerated. type= Type of services to enumerate (driver, service, all) (default = service) state= State of services to enumerate (inactive, all) (default = active) bufsize= The size (in bytes) of the enumeration buffer (default = 4096) ri= The resume index number at which to begin the enumeration (default = 0) group= Service group to enumerate (default = all groups) SYNTAX EXAMPLES sc query - Enumerates status for active services & drivers sc query messenger - Displays status for the messenger service sc queryex messenger - Displays extended status for the messenger service sc query type= driver - Enumerates only active drivers sc query type= service - Enumerates only Win32 services sc query state= all - Enumerates all services & drivers sc query bufsize= 50 - Enumerates with a 50 byte buffer. sc query ri= 14 - Enumerates with resume index = 14 sc queryex group= "" - Enumerates active services not in a group sc query type= service type= interact - Enumerates all interactive services sc query type= driver group= NDIS - Enumerates all NDIS drivers . |
So deleting an Oracle Listener Windows Service would be something like the following statement in a Windows CMD window
C:\> sc query OracleOraDb11g_home1TNSListener SERVICE_NAME: OracleOraDb11g_home1TNSListener TYPE : 10 WIN32_OWN_PROCESS STATE : 4 RUNNING (STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 C:\> sc delete OracleOraDb11g_home1TNSListener . |

8 comments
Skip to comment form ↓
Doug Burns
16 October, 2007 at 23:34 (UTC 1) Link to this comment
Now I didn’t know that and it looks really useful so thanks a lot!
Niall Litchfield
17 October, 2007 at 10:44 (UTC 1) Link to this comment
It is indeed extremely useful – If you are on Windows 2000 or earlier then the command is not built in but available on the windows resource kit – which I think costs money. It is built in to xp and 2003. You can use the XP version to remotely delete services (now that should scare you) if you have wmi administrative rights on the remote machine.
I also always forget that the command takes the name of the service and not the display name of the service as an argument.
Marco Gralike
17 October, 2007 at 14:05 (UTC 1) Link to this comment
If you have administrative rights (as most Oracle database installations have…) then everything is possible local and remote (as far as you know how).
I hope, but I haven’t really worked with Vista, that this will change.
Nevertheless regarding privileges, Windows is a bitch. Have you EVER seen a proper (security wise) Oracle installation manual…
It is still on my to do list; writing a correct security wise installation manual for Windows, but I am also reluctant to do this, because I think this is Oracle responsibility (since a decade…) and it is a lot of groundwork. The advantage I have is that I worked with Oracle for Windows, since Windows NT 3.1 / 3.5 (a Windows 3.11 OS in disguise).
Barry Allard
12 December, 2009 at 7:09 (UTC 1) Link to this comment
List all services and drivers in any state :
sc queryex state= all type= all
List all services and drivers in any state (good for forensics):
sc queryex state= all type= all | find “_NAME”
Separate out shared services:
http://is.gd/5kAWJ
Find memory usage of services:
http://is.gd/5kAWJ
Dalila
23 March, 2010 at 21:29 (UTC 1) Link to this comment
I came upon your website because I was searching for “how to remove Oracle services” in Win XP. I used the OUInstaller, but it did not remove from Window services. I also did the registry but partially.
The sc cmd help.
So thank you for the help!
Great!!
Dalila
Marco Gralike
23 March, 2010 at 21:47 (UTC 1) Link to this comment
Your welcome
Every little bit of information exchange helps in our line of work. As said, glad of being of help.
vivek
28 December, 2011 at 6:30 (UTC 1) Link to this comment
I wanted to start/stop any service of a remote machine.
Through a remote machine. So I am using a command
SC \\server stop “Apache Tomcat Tomcat6”
output
SC] OpenSCManager FAILED 5:
Access is denied.U:/>
Do you have any idea have to excute this command using admin access?
Marco Gralike
28 December, 2011 at 20:34 (UTC 1) Link to this comment
Yep. You need the domain privileges to do that or local privileges. What you could do to authorize yourself is to connect to a C$ share on that server and then re-execute the statement.