windows services - script - ¿Cómo reiniciar el servicio utilizando el símbolo del sistema?
restablecimiento de red windows 7 (6)
Quiero reiniciar el servicio de Windows usando el símbolo del sistema en la sección [Icons]
usando Inno Setup. Por favor ayudame a resolver el problema.
Este es mi código, para iniciar / detener un servicio de Windows usando el comando SC
. Si el servicio no se inicia / detiene, imprimirá una información de registro. Puedes probarlo por Inno Setup.
{ start a service }
Exec(ExpandConstant(''{cmd}''), ''/C sc start ServiceName'', '''',
SW_HIDE, ewWaitUntilTerminated, ResultCode);
Log(''sc start ServiceName:''+SysErrorMessage(ResultCode));
{ stop a service }
Exec(ExpandConstant(''{cmd}''), ''/C sc stop ServiceName'', '''',
SW_HIDE, ewWaitUntilTerminated, ResultCode);
Log(''sc stop ServiceName:''+SysErrorMessage(ResultCode));
Para reiniciar un servicio en ejecución:
net stop "service name" && net start "service name"
Sin embargo, si no sabe si el servicio se está ejecutando en primer lugar y desea reiniciarlo o iniciarlo, use esto:
net stop "service name" & net start "service name"
Esto funciona si el servicio ya se está ejecutando o no.
Para referencia, aquí está la documentation sobre los símbolos de procesamiento condicional.
Puede iniciar y detener y consultar servicios utilizando el comando SC . En cuanto a innosetup no estoy seguro.
Puede usar sc start [service]
para iniciar un servicio y sc stop [service]
para detenerlo. Con algunos servicios net start [service]
está haciendo lo mismo.
Pero si desea usarlo en el mismo lote, tenga en cuenta que sc stop
no esperará a que se detenga el servicio. En este caso, debe usar net stop [service]
seguido de net start [service]
. Esto se ejecutará de forma síncrona.
Puedes crear un archivo .bat con el siguiente contenido:
net stop "my service name"
net start "my service name"
net.exe stop "servicename" && net.exe start "servicename"