"PsService is a service viewer and controller for Windows NT/2K. Like the SC utility that's included in the Windows NT and Windows 2000 Resource Kits, PsService displays the status, configuration, and dependencies of a service, and allows you to start, stop, pause, resume and restart them. Unlike the SC utility, PsService enables you to logon to a remote system using a different account, for cases when the account from which you run it doesn't have required permissions on the remote system. PsService includes a unique service-search capability, which identifies active instances of a service on your network. You would use the search feature if you wanted to locate systems running DHCP servers, for instance.

Finally, PsService works on both NT 4 and Windows 2000, whereas the Windows 2000 Resource Kit version of SC requires Windows 2000, and PsService doesn't require you to manually enter a "resume index" in order to obtain a complete listing of service information.

Installation

Just copy PsService onto your executable path, and type "psservice".

PsService works on NT 3.51, NT 4.0, and Win2K.

Usage

The default behavior of PsService is to display the configured services (both running and stopped) on the local system. Entering a command on the command-line invokes a particular feature, and some commands accept options. Typing a command followed by "-?" displays information on the syntax for the command.

usage: psservice \[\\computer \[-u username\] \[-p password\]\] <command> <options>

    query Displays the status of a service
    config Displays the configuration of a service
    start Starts a service
    stop Stops a service
    restart Stops and then restarts a service
    pause Pauses a service
    cont Resumes a paused service
    depend Lists the services dependent on the one specified
    find Searches the network for the specified service
    \\computer Targets the NT/Win2K system specified. Include the -u switch with a username and password to login to the remote system if your security credentials do not permit you to obtain performance counter information from the remote system. If you specify the -u option, but not a password with the -p option, PsService will prompt you to enter the password and will not echo it to the screen.

How it Works

PsService uses the Service Control Manager APIs that are documented in the Platform SDK."

I have scripted PsSVC.BAT, which makes it easier to use PsService in a batch. The syntax is:

PsSVC \\ComputerName <command> <Short Service Name>

NOTE: The state variable contains an N if you there is an error. The valid values for State are:

            1 - Stopped
            2 - Start Pending
            3 - Stop Pending
            4 - Running

NOTE: You could modifiy the batch to include the credentials if needed.

Examples:

PsSVC \\JSI007 query spooler
Queries the state of the spooler service on computer JSI007.

if "%state%" EQU "1" PsSVC \\JSI007 start spooler
Starts the spooler service on computer JSI007, if it was stopped.

PsSVC.BAT contains:

@echo off
set state=N
If "%1" EQU "" goto :EOF
If "%2" EQU "" goto :EOF
If "%3" EQU "" goto :EOF
for /f "skip=9 Tokens=1-2 Delims=: " %%i in ('psservice %1 %2 %3') do call :parse %%i %%j
goto :EOF
:parse
If "%1" EQU "STATE" set state=%2