Como posso iniciar / parar um serviço do Windows através de um script bash do Linux?

3

Eu quero criar um script que será iniciado através de um servidor SSH para iniciar / parar um serviço do Windows. O usuário do SSH faz parte do grupo Administrador. No entanto, quando executo o script, recebo um erro informando que o serviço não pode ser iniciado.

Como posso garantir que meu script seja iniciado com privilégios de administrador? Eu fiz scripts semelhantes no Linux usando sudo service myservice start/stop . Eu estou procurando um equivalente no Windows, se tal coisa existe.

Meu shell ps1 é parecido com isto:

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

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

function status() { // Return Running/Stopped for MyService }
    
por Byob 09.10.2013 / 20:34

3 respostas

3

Eu gostaria que o script SSH iniciasse um script PowerShell. O Powershell é capaz de se elevar e, em seguida, iniciar os serviços de parada e verificar seu status.

Algum pseudo código:

ssh user@server powershell.bat

Onde o powershell.bat tem todo o código necessário para fazer o que você quer com os serviços.

    
por 09.10.2013 / 21:16
4

Eu sei que você quer usar o bash / ssh, mas a maneira mais fácil em minha experiência de administrar o Windows a partir de uma caixa do Linux é com Python e WMI

link

link

link

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

Esta é a forma mais simples que eu conheço, se você não precisa do BASH / SSH, se você precisar usar o SSH, fica mais complicado, pois agora você precisará do Python e do WMI instalados em qualquer máquina que você queira rodar. Nesse caso você pode querer ir com uma linguagem que já está instalada em cada máquina (VBScript, Powershell, etc). Esse método também pressupõe que você tenha o serviço WMI ativado na caixa do Windows que alguns administradores não gostam de fazer.

As caixas Linux são ótimas para administrar ambientes mistos, mas certifique-se de usar a ferramenta certa para o trabalho, um canivete cortará uma árvore, mas uma serra elétrica foi construída para cortar a árvore.

    
por 09.10.2013 / 21:28
1

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

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

status = net rpc service status SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD

Se a sua senha contiver especiais, escape-os com uma barra invertida \ .

    
por 07.04.2016 / 10:20