Windowsサービスとして実行されているCherryPyサーバーで実行されているPython Webアプリケーションがあります。このアプリケーションを展開するためのバッチファイルがありますが、リモートデスクトップにサービスを再起動するサーバー。これをスクリプト化する方法はありますか?
私は試した:
psexec \\server "net restart cherrypyservice"
しかし、これはうまくいかないようです。
scコマンドラインツールを使用できますが、具体的にはpythonでそれを行う方法がわかりません。
説明: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
Russinovichの psservice を使用する:
psservice \\server restart cherrypyservice
Psexecを使用する場合:
psexec \\Server cmd "/c net stop servicename"
psexec \\Server cmd "/c net start servicename"
この場合、scが推奨されます。シェルアウトする場合に必要なすべてを行います。
試す
psexec \\server net stop cherrypyservice
psexec \\server net start cherrypyservice
net stop cherrypyservice
net start cherrypyservice
任意のリモート実行エンジンを使用します。
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()
}
WMIメソッドの使用
(Get-WmiObject win32_service -computer stp7cor1737ltv4 -filter "Name = 'SPtimerv3'")。invokemethod( "StartService"、$ null)
(gwmi win32_service -computer $ comp -Filter "name = '$ serviceName'")。StopService()(gwmi win32_service -computer $ comp -Filter "name = '$ serviceName'")。StartService()
こんにちは
上記のコマンドを使用して、サービスとその依存関係を再起動する方法があります。どうすれば強制できますか?強制コマンドはありますか?
Psserviceに-fがあることは知っていますが、ここではわかりません
psservice \\server restart cherrypyservice
(psserviceが別のSysInternalsアプリである場合)
または
sc \\server stop cherrypyservice
sc \\server start cherrypyservice