This function will return an array containing the above information as a return value, but if this fails it will return an integer which is a System Error Code. All the System Error Codes can be found here:
http://msdn.microsoft.com/en-us/library/ms681381%28VS.85%29.aspx
In my case, it returned 5, in which I immediately knew why and fixed the issue right away.
In the case of mnemotronic at netscape dot net, here in the documentation notes, it returned 1060 which is:
ERROR_SERVICE_DOES_NOT_EXIST
1060 (0x424)
The specified service does not exist as an installed service.
Again, it should not return FALSE, instead an System Error Code for Windows.
win32_query_service_status
(PECL win32service SVN)
win32_query_service_status — Pregunta sobre el estado de un servicio
Descripción
Pregunta sobre el estado actual de un servicio, devolviendo una matriz de información.
Parámetros
-
servicename -
El nombre corto del servicio.
-
machine -
El nombre opcional de la máquina. Si se omite, será usada la máquina local.
Valores devueltos
Devuelve una matriz que consiste en la sigiente información sobre , FALSE si hay un problema con los parámetros o Código de error Win32 en caso de error.
-
ServiceType -
El dwServiceType. Véase Máscaras de Bits de Tipo Servicio de Win32Service.
-
CurrentState -
El dwCurrentState. Véase Constantes de Estado de Servicio de Win32Service.
-
ControlsAccepted -
Qué controles de servicio son aceptados por el servicio. Véase Máscaras de Bits Aceptadas de Mensajes de Control de Servicios de Win32Service.
-
Win32ExitCode -
Si se sale del servicio, el código de retorno del proceso.
-
ServiceSpecificExitCode -
Si se sale del servicio con una condición de error, el código específico de servicio que es registrado en el registro de eventos es visible aquí.
-
CheckPoint -
Si el servicio se apaga, mantiene el número del punto de control actual. Ésto es usado por el ACS como un tipo de pulso para detectar un proceso de servicio estancado. El valor del punto de control se interpreta mejor junto con el valor WaitHint.
-
WaitHint -
Si el servicio se apaga se establecerá WaitHint a un valor del punto de control que indicará 100% de finalización. Esto se puede usar para implementar un indicador de progreso.
-
ProcessId -
El indentificador de proceso de Windows. Si es 0, el proceso no se está ejecutando.
-
ServiceFlags -
El dwServiceFlags. Véase Constantes de Banderas de Servicio de Win32Service.
***Notice the name is IISADMIN and not IIS Admin
right click the serivce then, type in the "Service Name" not the "Display Name" or you will get 1060
<?php
$servicename ="IISADMIN";
$machine ="desktopper";
//print_r (win32_query_Service_status($servicename,$machine));
echo $servicename;
$sray = win32_query_Service_status($servicename,$machine);
echo "<br>";
print_r ($sray);
echo "<ul>";
echo "<li>Service Type: " .$sray[ServiceType] . "</li>";
echo "<li>CurrentState: " .$sray[CurrentState] . "</li>";
echo "<li>Controls Accpeted: " .$sray[ControlsAccepted] . "</li>";
echo "<li>Win32 Exit Code: " .$sray[Win32ExitCode] . "</li>";
echo "<li>Service Specific Exit Code: " .$sray[ServiceSpecificExitCode] . "</li>";
echo "<li>Check Point: " .$sray[CheckPoint] . "</li>";
echo "<li>Wait Hint: " .$sray[WaitHint] . "</li>";
echo "<li>Process Id: " .$sray[ProcessId] . "</li>";
echo "<li>Service Flags: " .$sray[ServiceFlags] . "</li>";
?>
If the service specified is non-existant, "win32_query_service_status" seems to return an integer, not the expected FALSE value:
<?php
$svcStatus=win32_query_service_status ('_bogons_');
echo $svcStatus ;
?>
prints 1060
-- This is for xampp PHP; v5.1.6
