it-swarm-pt.tech

Como posso reiniciar um serviço do Windows remotamente usando um script?

Eu tenho um Python aplicativo da web em execução em um servidor CherryPy, que está sendo executado como um serviço do Windows. Tenho um arquivo em lote para implantar este aplicativo, mas ainda estou tendo que área de trabalho remota em o servidor para reiniciar o serviço. Existe alguma maneira de fazer o script?

Eu tentei:

psexec \\server "net restart cherrypyservice"

Mas isso não parece funcionar.

7
Jason Baker

você poderia usar a ferramenta de linha de comando sc, mas não sei como fazê-lo especificamente em python.

https://stackoverflow.com/questions/133883/stop-and-start-a-service-via-batch-or-cmd-file/133926#133926

DESCRIÇÃO: SC é um programa de linha de comando usado para comunicação com o Controlador de Serviço NT e serviços. USO: sc [comando] [nome do serviço] ...

  The option  has the form "\\ServerName"
  Further help on commands can be obtained by typing: "sc [command]"
  Commands:
    query-----------Queries the status for a service, or
                    enumerates the status for types of services.
    queryex---------Queries the extended status for a service, or
                    enumerates the status for types of services.
    start-----------Starts a service.
    pause-----------Sends a PAUSE control request to a service.
    interrogate-----Sends an INTERROGATE control request to a service.
    continue--------Sends a CONTINUE control request to a service.
    stop------------Sends a STOP request to a service.
    config----------Changes the configuration of a service (persistant).
    description-----Changes the description of a service.
    failure---------Changes the actions taken by a service upon failure.
    qc--------------Queries the configuration information for a service.
    qdescription----Queries the description for a service.
    qfailure--------Queries the actions taken by a service upon failure.
    delete----------Deletes a service (from the registry).
    create----------Creates a service. (adds it to the registry).
    control---------Sends a control to a service.
    sdshow----------Displays a service's security descriptor.
    sdset-----------Sets a service's security descriptor.
    GetDisplayName--Gets the DisplayName for a service.
    GetKeyName------Gets the ServiceKeyName for a service.
    EnumDepend------Enumerates Service Dependencies.

  The following commands don't require a service name:
  sc   
    boot------------(ok | bad) Indicates whether the last boot should
                    be saved as the last-known-good boot configuration
    Lock------------Locks the Service Database
    QueryLock-------Queries the LockStatus for the SCManager Database

EXEMPLO: sc start MyService

9
Keng

Usando o psservice de Russinovich :

 psservice \\server restart cherrypyservice
7
gabr

Se você quiser usar psexec:

psexec \\Server cmd "/c net stop servicename"
psexec \\Server cmd "/c net start servicename"

Embora neste caso, sc seja recomendado. Ele faz tudo que você precisa se você estiver indo para a Shell.

3
K. Brian Kelley

experimentar

psexec \\server net stop cherrypyservice
psexec \\server net start cherrypyservice
2
Richard Slater
net stop cherrypyservice
net start cherrypyservice

com qualquer mecanismo de execução remota de sua preferência.

2
Richard Gadsden

Usando o PowerShell interativamente (localmente):

get-service $servicename  | restart-service

Usando o PowerShell interativamente (remotamente):

(gwmi win32_service -computer $comp -Filter "name='$serviceName'").StopService()
(gwmi win32_service -computer $comp -Filter "name='$serviceName'").StartService()

Em uma função (remotamente):

function restart-remoteservice{
     param($servicename,$computer)
     (gwmi win32_service -computer $computer -Filter "name='$serviceName'").StopService()
     (gwmi win32_service -computer $computer -Filter "name='$serviceName'").StartService()
}
0
James Pogran

Usando o método WMI

(Get-WmiObject win32_service -computer stp7cor1737ltv4 -filter "Name = 'SPtimerv3'"). Invokemethod ("StartService", $ null)

0
Joshua

(gwmi win32_service -computer $ comp -Filter "name = '$ serviceName'"). StopService () (gwmi win32_service -computer $ comp -Filter "name = '$ serviceName'"). StartService ()

Olá

Usando o comando acima, existe uma maneira de reiniciar um serviço e suas dependências. Como faço para forçá-lo a fazer isso, existe um comando de força?

Eu sei que existe -f no psservice, mas não consigo descobrir isso aqui

0
Mladen
psservice \\server restart cherrypyservice

(Onde psservice é outro aplicativo SysInternals)

ou

sc \\server stop cherrypyservice
sc \\server start cherrypyservice
0
gWaldo