web-dev-qa-db-ja.com

スクリプトを使用してWindowsサービスをリモートで再起動するにはどうすればよいですか?

Windowsサービスとして実行されているCherryPyサーバーで実行されているPython Webアプリケーションがあります。このアプリケーションを展開するためのバッチファイルがありますが、リモートデスクトップにサービスを再起動するサーバー。これをスクリプト化する方法はありますか?

私は試した:

psexec \\server "net restart cherrypyservice"

しかし、これはうまくいかないようです。

7
Jason Baker

scコマンドラインツールを使用できますが、具体的にはpythonでそれを行う方法がわかりません。

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

説明:SCは、NTサービスコントローラおよびサービスとの通信に使用されるコマンドラインプログラムです。使用法:sc [コマンド] [サービス名] ...

  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

例:sc start MyService

9
Keng

Russinovichの psservice を使用する:

 psservice \\server restart cherrypyservice
7
gabr

Psexecを使用する場合:

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

この場合、scが推奨されます。シェルアウトする場合に必要なすべてを行います。

3
K. Brian Kelley

試す

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

任意のリモート実行エンジンを使用します。

2
Richard Gadsden

PowerShellを対話的に使用する(地域):

get-service $servicename  | restart-service

PowerShellを対話的に(リモートで)使用する:

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

関数内(リモート):

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

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()

こんにちは

上記のコマンドを使用して、サービスとその依存関係を再起動する方法があります。どうすれば強制できますか?強制コマンドはありますか?

Psserviceに-fがあることは知っていますが、ここではわかりません

0
Mladen
psservice \\server restart cherrypyservice

(psserviceが別のSysInternalsアプリである場合)

または

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