SC
Communicates with the Service Controller and installed services. SC.exe retrieves and sets control information about services. You can use SC.exe for testing and debugging service programs. Service properties stored in the registry can be set to control how service applications are started at boot time and run as background processes. SC.exe parameters can configure a specific service, retrieve the current status of a service, as well as stop and start a service. You can create batch files that call various SC.exe commands to automate the startup or shutdown sequence of services. SC.exe provides capabilities similar to Services in the Administrative Tools item in Control Panel.
For the command syntax, click any of the following sc commands:
sc boot
Indicates whether the last boot should be saved as the last-known-good configuration.
Syntax
sc [ServerName] boot [{bad|OK}]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the Universal Naming Convention (UNC) format ("\\myserver"). To run SC.exe locally, ignore this parameter.
[{ bad | OK }] : Specifies whether the last boot was bad or whether it should be saved as the last-known-good boot configuration.
/? : Displays help at the command prompt.
Examples
The following examples show how you can use the sc boot command:
sc boot ok
sc boot bad
sc config
Modifies the value of a service's entries in the registry and in the Service Control Manager's database.
Syntax
sc [ServerName] config [ServiceName] [type= {own|share|kernel|filesys|rec|adapt|interact type= {own|share}}] [start= {boot|system|auto|demand|disabled}] [error= {normal|severe|critical|ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes|no}] [depend= dependencies] [obj= {AccountName|ObjectName}] [displayname= DisplayName] [password= Password]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the Universal Naming Convention (UNC) format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
type= { own | share | kernel | filesys | rec | adapt | interact type= { own | share }} : Specifies the service type.
Value |
Description |
---|---|
own |
The service runs in its own process. It does not share an executable file with other services. This is the default. |
share |
The service runs as a shared process. It shares an executable file with other services. |
kernel |
Driver. |
filesys |
File system driver. |
rec |
File system-recognized driver (identifies file systems used on the computer). |
adapt |
Adapter driver (identifies hardware items such as keyboard, mouse, and disk drive). |
interact |
The service can interact with the desktop, receiving input from users. Interactive services must be run under the LocalSystem account. This type must be used in conjunction with type= own or type= shared (for example, type= interact type= own). Using type= interact by itself will generate an invalid parameter error. |
start= { boot | system | auto | demand | disabled } : Specifies the start type for the service.
Value |
Description |
---|---|
boot |
A device driver that is loaded by the boot loader. |
system |
A device driver that is started during kernel initialization. |
auto |
A service that automatically starts each time the computer is restarted and runs even if no one logs on to the computer. |
demand |
A service that must be manually started. This is the default value if start= is not specified. |
disabled |
A service that cannot be started. To start a disabled service, change the start type to some other value. |
error= { normal | severe | critical | ignore } : Specifies the severity of the error if the service fails to start during boot.
Value |
Description |
---|---|
normal |
The error is logged and a message box is displayed informing the user that a service has failed to start. Startup will continue. This is the default setting. |
severe |
The error is logged (if possible). The computer attempts to restart with the last-known-good configuration. This could result in the computer being able to restart, but the service may still be unable to run. |
critical |
The error is logged (if possible). The computer attempts to restart with the last-known-good configuration. If the last-known-good configuration fails, startup also fails, and the boot process halts with a Stop error. |
ignore |
The error is logged and startup continues. No notification is given to the user beyond recording the error in the Event Log. |
binpath= BinaryPathName : Specifies a path to the service binary file.
group= LoadOrderGroup : Specifies the name of the group of which this service is a member. The list of groups is stored in the registry in the HKLM\System\CurrentControlSet\Control\ServiceGroupOrder subkey. The default is null.
tag= { yes | no } : Specifies whether or not to obtain a TagID from the CreateService call. Tags are only used for boot-start and system-start drivers.
depend= dependencies : Specifies the names of services or groups which must start before this service. The names are separated by forward slashes (/).
obj= { AccountName | ObjectName } : Specifies a name of an account in which a service will run, or specifies a name of the Windows driver object in which the driver will run. The default is LocalSystem.
displayname= DisplayName : Specifies a friendly, meaningful name that can be used in user-interface programs to identify the service to users. For example, the subkey name of one service is wuauserv, which is not be helpful to the user, and the display name is Automatic Updates.
password= Password : Specifies a password. This is required if an account other than the LocalSystem account is used.
/? : Displays help at the command prompt.
Remarks
- Without a space between a parameter and its value (for example, type= own, not type=own), the operation will fail.
Examples
The following example shows how you can use the sc config command:
sc config NewService binpath= "ntsd -d c:\windows\system32\NewServ.exe"
sc continue
Sends a CONTINUE control request to a service in order to resume a paused service.
Syntax
sc [ServerName] continue [ServiceName]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
/? : Displays help at the command prompt.
Remarks
- Use the continue operation to resume a paused service.
Examples
The following example shows how you can use the sc continue command:
sc continue tapisrv
sc control
Sends a CONTROL B to a service.
Syntax
sc [ServerName] control [ServiceName] [{paramchange|netbindadd|netbindremove|netbindenable|netbinddisable|UserDefinedControlB}]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
{ paramchange | netbindadd | netbindremove | netbindenable | netbinddisable | UserDefinedControlB } : Specifies a control to send to a service.
/? : Displays help at the command prompt.
sc create
Creates a subkey and entries for the service in the registry and in the Service Control Manager's database.
Syntax
sc [ServerName] create [ServiceName] [type= {own|share|kernel|filesys|rec|adapt|interact type= {own|share}}] [start= {boot|system|auto|demand|disabled}] [error= {normal|severe|critical|ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes|no}] [depend= dependencies] [obj= {AccountName|ObjectName}] [displayname= DisplayName] [password= Password]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
type= { own | share | kernel | filesys | rec | adapt | interact type= { own | share }} : Specifies the service type. The default is type= own.
Value |
Description |
---|---|
own |
The service runs in its own process. It does not share an executable file with other services. This is the default. |
share |
The service runs as a shared process. It shares an executable file with other services. |
kernel |
Driver. |
filesys |
File system driver. |
rec |
File system recognized driver (identifies file systems used on the computer). |
interact |
The service can interact with the desktop, receiving input from users. Interactive services must be run under the LocalSystem account. This type must be used in conjunction with type= own or type= shared (that is, type= interact type= own). Using type= interact by itself will generate an invalid parameter error. |
start= { boot | system | auto | demand | disabled } : Specifies the start type for the service. The default start is start= demand.
boot |
A device driver that is loaded by the boot loader. |
system |
A device driver that is started during kernel initialization. |
auto |
A service that automatically starts each time the computer is restarted and runs even if no one logs on to the computer. |
demand |
A service that must be manually started. This is the default value if start= is not specified. |
disabled |
A service that cannot be started. To start a disabled service, change the start type to some other value. |
error= { normal | severe | critical | ignore } : Specifies the severity of the error if the service fails to start during boot. The default is error= normal.
normal |
The error is logged and a message box is displayed informing the user that a service has failed to start. Startup will continue. This is the default setting. |
severe |
The error is logged (if possible). The computer attempts to restart with the last-known-good configuration. This could result in the computer being able to restart, but the service may still be unable to run. |
critical |
The error is logged (if possible). The computer attempts to restart with the last-known-good configuration. If the last-known-good configuration fails, startup also fails, and the boot process halts with a Stop error. |
ignore |
The error is logged and startup continues. No notification is given to the user beyond recording the error in the Event Log. |
binpath= BinaryPathName : Specifies a path to the service binary file. There is no default for binpath= and this string must be supplied.
group= LoadOrderGroup : Specifies the name of the group of which this service is a member. The list of groups is stored in the registry in the HKLM\System\CurrentControlSet\Control\ServiceGroupOrder subkey. The default is null.
tag= { yes | no } : Specifies whether or not to obtain a TagID from the CreateService call. Tags are only used for boot-start and system-start drivers.
depend= dependencies : Specifies the names of services or groups that must start before this service. The names are separated by forward slashes (/).
obj= { AccountName | ObjectName } : Specifies a name of an account in which a service will run, or specifies a name of the Windows driver object in which the driver will run.
displayname= DisplayName : Specifies a friendly name that can be used by user-interface programs to identify the service.
password= Password : Specifies a password. This is required if an account other than LocalSystem is used.
/? : Displays help at the command prompt.
Remarks
- Without a space between a parameter and its value (that is, type= own, not type=own), the operation will fail.
Examples
The following examples show how you can use the sc create command:
sc \\myserver create NewService binpath= c:\windows\system32\NewServ.exe
sc create NewService binpath= c:\windows\system32\NewServ.exe type= share start= auto depend= "+TDI Netbios"
sc delete
Deletes a service subkey from the registry. If the service is running or if another process has an open handle to the service, then the service is marked for deletion.
Syntax
sc [ServerName] delete [ServiceName]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
/? : Displays help at the command prompt.
Remarks
- Use Add or Remove Programs to delete DHCP, DNS, or any other built-in operating system services. Add or Remove Programs will not only remove the registry subkey for the service, but it will also uninstall the service and delete any shortcuts to the service.
Examples
The following example shows how you can use the sc delete command:
sc delete newserv
sc description
Sets the description string for a service.
Syntax
sc [ServerName] description [ServiceName] [Description]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
Description : Specifies a description for the specified service. If no string is specified, the description of the service is not modified. There is no limit to the number of characters that can be contained in the service description.
/? : Displays help at the command prompt.
Examples
The following example shows how you can use the sc description command:
sc description newserv "Runs quality of service control."
sc enumdepend
Lists the services that cannot run unless the specified service is running.
Syntax
sc [ServerName] enumdepend [ServiceName] [BufferSize]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
BufferSize : Specifies the size (in bytes) of the enumeration buffer. The default is 1024 bytes.
/? : Displays help at the command prompt.
Remarks
- If the buffer is not big enough, the enumdepend operation will output dependencies only partially, and will specify the additional buffer size required to output all dependencies. If the output is truncated, rerun the operation and specify the larger buffer size.
Examples
The following examples show how you can use the sc enumdepend command:
sc enumdepend rpcss 5690
sc enumdepend tapisrv
sc failure
Specifies what action to take upon failure of the service.
Syntax
sc [ServerName] failure [ServiceName] [reset= ErrorFreePeriod] [reboot= BroadcastMessage] [command= CommandLine] [actions= FailureActionsAndDelayTime]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
reset= ErrorFreePeriod : Specifies the length of the period (in seconds) with no failures after which the failure count should be reset to 0. This parameter must be used in conjunction with the actions= parameter.
reboot= BroadcastMessage : Specifies the message to be broadcast upon failure of the service.
command= CommandLine : Specifies the command line to be run upon failure of the service. For more information about how to run a batch or VBS file upon failure, see Remarks.
actions= FailureActionsAndDelayTime : Specifies the failure actions and their delay time (in milliseconds) separated by the forward slash (/). The following actions are valid: run, restart, and reboot. This parameter must be used in conjunction with the reset= parameter. Use actions= "" to take no action upon failure.
/? : Displays help at the command prompt.
Remarks
Not all services allow changes to their failure options. Some run as part of a service set.
To run a batch file upon failure, specify cmd**.exe** Drive**:\FileName.bat** to the command= parameter, where Drive**:\FileName.bat** is the fully qualified name of the batch file.
To run a VBS file upon failure, specify cscript drive**:\myscript.vbs** to the command= parameter, where drive**:\myscript.vbs** is the fully qualified name of the script file.
It is possible to specify three different actions to the actions= parameter, which will be used the first, second, and third time a service fails.
Without a space between a parameter and its value (that is, type= own, not type=own), the operation will fail.
Examples
The following examples show how you can use the sc failure command:
sc failure msftpsvc reset= 30 actions= restart/5000
sc failure dfs reset= 60 command= c:\windows\services\restart_dfs.exe actions= run/5000
sc failure dfs reset= 60 actions= reboot/30000
sc failure dfs reset= 60 reboot= "The Distributed File System service has failed. Because of this, the computer will reboot in 30 seconds." actions= reboot/30000
sc failure myservice reset= 3600 reboot= "MyService crashed -- rebooting machine" command= " %windir% \MyServiceRecovery.exe" actions= restart/5000/run/10000/reboot/60000
sc getdisplayname
Gets the display name associated with a particular service.
Syntax
sc [ServerName] getdisplayname [ServiceName] [BufferSize]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
BufferSize : Specifies the size (in bytes) of the buffer. The default is 1024 bytes.
/? : Displays help at the command prompt.
Examples
The following examples show how you can use the sc getdisplayname command:
sc getdisplayname clipsrv
sc getdisplayname tapisrv
sc getdisplayname sharedaccess
sc getkeyname
Gets the key name associated with a particular service, using the display name as input.
Syntax
sc [ServerName] getkeyname [ServiceDisplayName] [BufferSize]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceDisplayName : Specifies the display name of the service.
BufferSize : Specifies the size (in bytes) of the buffer. The default is 1024 bytes.
/? : Displays help at the command prompt.
Remarks
- If the ServiceDisplayName contains spaces, use quotation marks around the text (that is, "Service Display Name").
Examples
The following examples show how you can use the sc getkeyname command:
sc getkeyname "remote procedure call (rpc)"
sc getkeyname "internet connection sharing"
sc getkeyname clipbook
sc interrogate
Sends an INTERROGATE control request to a service.
Syntax
sc [ServerName] interrogate [ServiceName]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
/? : Displays help at the command prompt.
Remarks
- Sending INTERROGATE to a service causes the service to update its status with the Service Control Manager.
Examples
The following examples show how you can use the sc interrogate command:
sc interrogate sharedaccess
sc interrogate rpcss
sc lock
Locks the Service Control Manager's database.
Syntax
sc [ServerName] lock
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
/? : Displays help at the command prompt.
Remarks
Locking the Service Control Manager's database prevents any services from starting. Use this if you want to make sure that a service will not be started after it has been stopped. This will allow you to take some action (for example, deleting the service) without interference.
Using the lock operation locks the Service Control Manager's database and then allows the database to be unlocked by typing u. You can also kill the process from which you locked the database.
Examples
The following example shows how you can use the sc lock command:
sc lock
sc pause
Sends a PAUSE control request to a service.
Syntax
sc [ServerName] pause [ServiceName]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
/? : Displays help at the command prompt.
Remarks
Use the pause operation to pause a service before shutting it down.
Not all services can be paused.
Not all services perform the same when paused. Some continue to service existing clients, but refuse to accept new clients. Others cease to service existing clients and also refuse to accept new ones.
Examples
The following example shows how you can use the sc pause command:
sc pause tapisrv
sc qc
Queries the configuration information for a service.
Syntax
sc [ServerName] qc [ServiceName] [BufferSize]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
BufferSize : Specifies the size (in bytes) of the buffer. The default is 1024 bytes.
/? : Displays help at the command prompt.
Remarks
The qc operation displays the following information about a service: SERVICE_NAME (service's registry subkey name), TYPE, ERROR_CONTROL, BINARY_PATH_NAME, LOAD_ORDER_GROUP, TAG, DISPLAY_NAME, DEPENDENCIES, and SERVICE_START_NAME.
Administrators can use SC to determine the binary name of any service and find out if it shares a process with other services by typing the following at the command line:
sc qc ServiceName
SC can help match up services in the Services node of Microsoft Management Console (MMC) with processes in System Monitor. If the binary name is Services.exe, then the service shares the Service Controller process.
Services.exe starts all services. To conserve system resources, several Win32 services developed for Windows are written to share the Services.exe process. These services are not listed as separate processes in System Monitor or Task Manager. The same is true of Svchost.exe which is a service host process that many operating services share.
There might not be a process for every Win32 service because third-party Win32 services can also be configured to share processes. SC can be used to get configuration information on these services. If a service does not share its process with other services, however, there will be a process for it in System Monitor when the service is running.
SC can be useful for developers of services because it provides more detailed and accurate information about services than Services.exe, which is included with Windows. Services.exe can determine whether a service is running, stopped, or paused. Although these tools are adequate for a debugged application that is running smoothly, the information they provide about a service being developed can be misleading. For example, a service that is starting is shown as started whether it is actually running or not.
SC implements calls to all Windows service control application programming interface (API) functions. Set the parameters to these functions by specifying them at the command line.
Using SC, you can query the service status and retrieve the values stored in the status structure fields. Services.exe cannot provide you with the complete status of a service, but SC shows the exact state of the service, as well as the last checkpoint number and wait hint. You can use the checkpoint as a debugging tool because it indicates how far the initialization progressed before the program stopped responding. SC also lets you specify the name of a remote computer so that you can call the service API functions or view the service status structures on a remote computer.
Examples
The following examples show how you can use the sc qc command:
sc qc \\myserver newsrvice
sc qc rpcss 248
sc qdescription
Displays the description string of a service.
Syntax
sc [ServerName] qdescription [ServiceName] [BufferSize]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
BufferSize : Specifies the size (in bytes) of the buffer. The default is 1024 bytes.
/? : Displays help at the command prompt.
Examples
The following examples show how you can use the sc qdescription command:
sc qdescription rpcss
sc qdescription rpcss 138
sc qfailure
Displays the actions that will be performed if the specified service fails.
Syntax
sc [ServerName] qfailure [ServiceName] [BufferSize]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname peration.
BufferSize : Specifies the size (in bytes) of the buffer. The default is 1024 bytes.
/? : Displays help at the command prompt.
Remarks
- The qfailure operation displays the following information about a service: SERVICE_NAME (service's registry subkey name), RESET_PERIOD, REBOOT_MESSAGE, COMMAND_LINE, and FAILURE_ACTIONS.
Examples
The following examples show how you can use the sc qfailure command:
sc qfailure rpcss
sc qfailure rpcss 20
sc query
Obtains and displays information about the specified service, driver, type of service, or type of driver.
Syntax
sc [ServerName] query [ServiceName] [type= {driver|service|all}] [type= {own|share|interact|kernel|filesys|rec|adapt}] [state= {active|inactive|all}] [bufsize= BufferSize] [ri= ResumeIndex] [group= GroupName]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation. This query parameter is not used in conjunction with other query parameters (other than ServerName).
type= { driver | service | all } : Specifies what to enumerate. The default type is service.
Value |
Description |
---|---|
driver |
Specifies that only drivers are enumerated. |
service |
Specifies that only services are enumerated. |
all |
Specifies that both drivers and services are enumerated. |
type= { own | share | interact | kernel | filesys | rec | adapt } : Specifies the type of services or type of drivers to enumerate.
Value |
Description |
---|---|
own |
The service runs in its own process. It does not share an executable file with other services. This is the default. |
share |
The service runs as a shared process. It shares an executable file with other services. |
interact |
The service can interact with the desktop, receiving input from users. Interactive services must be run under the LocalSystem account. |
kernel |
Driver. |
filesys |
File system driver. |
state= { active | inactive | all } : Specifies the started state of the service for which to enumerate. The default state is active.
Value |
Description |
---|---|
active |
Specifies all active services. |
inactive |
Specifies all paused or stopped services. |
all |
Specifies all services. |
bufsize= BufferSize : Specifies the size (in bytes) of the enumeration buffer. The default size is 1024 bytes. Increase the size of the enumeration buffer when the display resulting from a query exceeds 1024 bytes.
ri= ResumeIndex : Specifies the index number at which to begin or resume the enumeration. The default is 0. Use this parameter in conjunction with the bufsize= parameter when more information is returned by a query than the default buffer can display.
group= GroupName : Specifies the service group to enumerate. The default is all groups.
/? : Displays help at the command prompt.
Remarks
Without a space between a parameter and its value (that is, type= own, not type=own), the operation will fail.
The query operation displays the following information about a service: SERVICE_NAME (service's registry subkey name), TYPE, STATE (as well as states which are not available), WIN32_EXIT_B, SERVICE_EXIT_B, CHECKPOINT, and WAIT_HINT.
The type= parameter can be used twice in some cases. The first appearance of the type= parameter specifies whether to query services, drivers, or all. The second appearance of the type= parameter specifies a type from the create operation to further narrow a query's scope.
When the display resulting from a query command exceeds the size of the enumeration buffer, a message similar to the following is displayed:
Enum: more data, need 1822 bytes start resume at index 79
To display the remaining query information, rerun query, setting bufsize= to be the number of bytes and ri= to the specified index. For example, the remaining output would be displayed by typing the following at the command line:
sc query bufsize= 1822 ri= 79
Examples
The following examples show how you can use the sc query command:
sc query
sc query messenger
sc query type= driver
sc query type= service
sc query state= all
sc query bufsize= 50
sc query ri= 14
sc query type= service type= interact
sc query type= driver group= ndis
sc queryex
Obtains and displays extended information about the specified service, driver, type of service, or type of driver.
Syntax
sc [ServerName] queryex [type= {driver|service|all}] [type= {own|share|interact|kernel|filesys|rec|adapt}] [state= {active|inactive|all}] [bufsize= BufferSize] [ri= ResumeIndex] [group= GroupName]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation. This queryex parameter is not used in conjunction with any other queryex parameters except ServerName.
type= { driver | service | all } : Specifies what to enumerate. The default type is service.
Value |
Description |
---|---|
driver |
Specifies that only drivers are enumerated. |
service |
Specifies that only services are enumerated. |
all |
Specifies that both drivers and services are enumerated. |
type= { own | share | interact | kernel | filesys | rec | adapt } : Specifies the type of services or type of drivers to enumerate.
Value |
Description |
---|---|
own |
The service runs in its own process. It does not share an executable file with other services. This is the default. |
share |
The service runs as a shared process. It shares an executable file with other services. |
interact |
The service can interact with the desktop, receiving input from users. Interactive services must be run under the LocalSystem account. |
kernel |
Driver. |
filesys |
File system driver. |
state= { active | inactive | all } : Specifies the started state of the service for which to enumerate. The default state is active.
Value |
Description |
---|---|
active |
Specifies all active services. |
inactive |
Specifies all paused or stopped services. |
all |
Specifies all services. |
bufsize= BufferSize : Specifies the size (in bytes) of the enumeration buffer. The default size is 1024 bytes.
ri= ResumeIndex : Specifies the index number at which to begin or resume the enumeration. The default is 0.
group= GroupName : Specifies the service group to enumerate. The default is all groups.
/? : Displays help at the command prompt.
Remarks
Without a space between a parameter and its value (that is, type= own, not type=own), the operation will fail.
The queryex operation displays the following information about a service: SERVICE_NAME (service's registry subkey name), TYPE, STATE (as well as states that are not available), WIN32_EXIT_B, SERVICE_EXIT_B, CHECKPOINT, WAIT_HINT, PID, and FLAGS.
The type= parameter can be used twice in some cases. The first appearance of the type= parameter specifies whether to query services, drivers, or all. The second appearance of the type= parameter specifies a type from the create operation to further narrow a query's scope.
When the display resulting from a queryex command exceeds the size of the enumeration buffer, a message similar to the following is displayed:
Enum: more data, need 2130 bytes start resume at index 75
To display the remaining queryex information, rerun queryex, setting bufsize= to be the number of bytes and ri= to the specified index. For example, the remaining output would be displayed by typing the following at the command line:
sc queryex bufsize= 2130 ri= 75
Examples
The following examples show how you can use the sc queryex command:
sc queryex messenger
sc queryex group= ""
sc querylock
Queries and displays the lock status for the Service Control Manager's database.
Syntax
sc [ServerName] querylock
Parameter
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
/? : Displays help at the command prompt.
sc sdset
Sets a service's security descriptor using Service Descriptor Definition Language (SDDL).
Syntax
sc [ServerName] sdset ServiceName ServiceSecurityDescriptor
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
ServiceSecurityDescriptor : Specifies the service descriptor in SDDL.
/? : Displays help at the command prompt.
Remarks
- For more information about SDDL, see "Security Descriptor Definition Language" at the MSDN Online Library.
sc sdshow
Displays a service's security descriptor using SDDL.
Syntax
sc [ServerName] sdshow ServiceName
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
/? : Displays help at the command prompt.
Remarks
- For more information about SDDL, see "Security Descriptor Definition Language" at the MSDN Online Library.
Examples
sc sdshow rpcss
sc start
Starts a service running.
Syntax
sc [ServerName] start ServiceName [ServiceArguments]
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
ServiceArguments : Specifies service arguments to pass to the service to be started.
/? : Displays help at the command prompt.
Examples
The following example shows how you can use the sc start command:
sc start tapisrv
sc stop
Sends a STOP control request to a service.
Syntax
sc [ServerName] stop ServiceName
Parameters
ServerName : Specifies the name of the remote server on which the service is located. The name must use the UNC format ("\\myserver"). To run SC.exe locally, ignore this parameter.
ServiceName : Specifies the service name returned by the getkeyname operation.
/? : Displays help at the command prompt.
Remarks
- Not all services can be stopped.
Examples
The following example shows how you can use the sc stop command:
sc stop tapisrv
Remarks
Formatting legend
Format |
Meaning |
---|---|
Italic |
Information that the user must supply |
Bold |
Elements that the user must type exactly as shown |
Ellipsis (...) |
Parameter that can be repeated several times in a command line |
Between brackets ([]) |
Optional items |
Between braces ({}); choices separated by pipe (|). Example: {even|odd} |
Set of choices from which the user must choose only one |
Courier font |
Code or program output |