web-dev-qa-db-ja.com

Linuxのbashスクリプトを使用してWindowsサービスを開始/停止するにはどうすればよいですか?

SSHサーバーを介して開始され、Windowsサービスを開始/停止するスクリプトを作成したいと思います。 SSHユーザーはAdministratorグループの一部です。ただし、スクリプトを実行すると、サービスを開始できないというエラーが表示されます。

スクリプトが管理者権限で開始されていることを確認するにはどうすればよいですか? LinuxでSudo service myservice start/stopを使用して同様のスクリプトを実行しました。そのようなものが存在する場合、私はWindowsで同等のものを探しています。

私のps1シェルは次のようになります:

function start() { Start-Service MyService // verify service started here }

function stop() { Stop-Service MyService // verify service stopped }

function status() { // Return Running/Stopped for MyService }
3
Byob

SSHスクリプトでPowerShellスクリプトを開始します。 Powershellは、それ自体を昇格させてから停止サービスを開始し、それらのステータスを確認することができます。

いくつかの擬似コード:

ssh user@server powershell.bat

Powershell.batには、サービスで必要なことを実行するために必要なすべてのコードがあります。

3
tbenz9

Bash/sshを使用したいことはわかっていますが、LinuxボックスからWindowsを管理する最も簡単な方法は、Python and WMI

http://timgolden.me.uk/python/wmi/index.html

http://timgolden.me.uk/python/wmi/cookbook.html

http://timgolden.me.uk/python/wmi/tutorial.html

import wmi

# Open a connection to a remote machine
c = wmi.WMI (
computer="other_machine",
user="you",
password="something"
)

# start the service
c.<service>.StartService ()

これは、BASH/SSHが必要ない場合に私が知っている最も簡単な方法です。SSHを使用する必要がある場合は、PythonおよびWMIを任意のマシンにインストールする必要があるため、より複雑になります。これを実行したい場合は、すべてのマシン(VBScript、Powershellなど)に既にインストールされている言語を使用することをお勧めします。この方法では、一部の管理者が使用していないWindowsボックスでWMIサービスが有効になっていることも前提としています。するのが好きです。

Linuxボックスは混合環境の管理に最適ですが、作業に適したツールを使用するようにしてください。ポケットナイフは木を切り倒しますが、チェーンソーは木を切り倒すために作られました。

4
Matty

開始= net rpc service start SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD

停止= net rpc service stop SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD

ステータス= net rpc service status SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD

パスワードにスペシャルが含まれている場合は、バックスラッシュでエスケープします\

1
Deadly