The batch file I'm using:
@ECHO OFF
CMD /C EXIT 0
echo errorlevel = %ERRORLEVEL%
sc qc jee
echo errorlevel = %ERRORLEVEL%
sc start jee
echo errorlevel = %ERRORLEVEL%
sc stop jee
echo errorlevel = %ERRORLEVEL%
sc qc Netlogon
echo errorlevel = %ERRORLEVEL%
On Windows Server 2003 (32&64bit) I get:
D:\Temp>errorleveltest.bat
errorlevel = 0
[SC] OpenService FAILED 1060:
The specified service does not exist as an installed service.
errorlevel = 0
[SC] StartService: OpenService FAILED 1060:
The specified service does not exist as an installed service.
errorlevel = 0
[SC] OpenService FAILED 1060:
The specified service does not exist as an installed service.
errorlevel = 0
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: Netlogon
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\WINDOWS\system32\lsass.exe
LOAD_ORDER_GROUP : MS_WindowsRemoteValidation
TAG : 0
DISPLAY_NAME : Net Logon
DEPENDENCIES : LanmanWorkstation
SERVICE_START_NAME : LocalSystem
errorlevel = 0
D:\Temp>
But on Windows Server 2008 I get:
D:\Temp>errorleveltest.bat
errorlevel = 0
[SC] OpenService FAILED 1060:
The specified service does not exist as an installed service.
errorlevel = 1060
[SC] StartService: OpenService FAILED 1060:
The specified service does not exist as an installed service.
errorlevel = 1060
[SC] OpenService FAILED 1060:
The specified service does not exist as an installed service.
errorlevel = 1060
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: Netlogon
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\WINDOWS\system32\lsass.exe
LOAD_ORDER_GROUP : MS_WindowsRemoteValidation
TAG : 0
DISPLAY_NAME : Net Logon
DEPENDENCIES : LanmanWorkstation
SERVICE_START_NAME : LocalSystem
errorlevel = 0
D:\Temp>
Notice the difference:
errorlevel = 0
errorlevel = 1060
Oh why??