Como inicio um serviço com certos parâmetros? Em outra pergunta eu encontrei
net start servicename blah
mas se eu tentar isso, net
lança um erro de sintaxe para mim.
O que estou fazendo de errado?
Edit: para esclarecernet start servicename
funciona muito bem, mas eu preciso passar parâmetros para o serviço. Eu posso fazer isso manualmenteservices.msc
preenchendo um parâmetro start antes de iniciar o serviço. Mas como posso fazer isso a partir de um script?
Outra edição: Desculpe, mas minha pergunta foi enganosa . Nos meus testes, eu tinha muitos mais parâmetros e não são as/blah
net start
queixas. De fato, qualquer coisa que comece com uma barra é boa . Entãonet start servicename /blah
funciona,net start servicename blah
não funciona. Desde que eu precisonet start servicename /foo bar
, ébar
esse o problema.
/
. Muito obrigado!NET START
não permitirá que você passe parâmetros arbitrários até onde sei (parece que eles devem ser prefixados com a /), acredito que a maneira correta é modificar a chave do Registro apropriada e interromper / iniciar o serviço. Supondo que seu serviço personalizado se chama MyService:Na verdade, uma maneira melhor é armazenar sua configuração em algum lugar que o serviço conheça, como talvez o registro ou o sistema de arquivos, e ler os valores que você precisa. Como você pode ver, personalizar a linha de comando é um pouco mais doloroso do que deveria ser.
Se por acaso este for um serviço desenvolvido pelo .NET, você poderá criar n cópias do executável em seu sistema de arquivos e obter cada um automaticamente os parâmetros do arquivo app.config apropriado.
Parece que você pode ter ido longe demais da caixa do Win32. Como isso soa como desenvolvimento personalizado, qualquer uma das outras soluções oferecidas, embora talvez não seja o seu ideal, funcionará corretamente e será um caminho mais seguro.
fonte
net start
não aceitar parâmetros, mas apenas aqueles que começam com um/
.sc.exe
. Veja a resposta do grawity (que de alguma forma eu consegui perder na época).Você precisa de uma barra antes de cada parâmetro ao usar
net start
. Certifique-se também de citar parâmetros que possuem espaços.fonte
net start servicename /foo
para um único argumentonet start servicename /"foo bar"
para uma sequência ou lista de argumentosNota : esta pergunta tem 8 anos, mas eu não tenho reputação de comentar a resposta aceita e esse ainda é um dos melhores resultados do google em 2018, então eu queria esclarecer o que estava funcionando agora em relação à edição final das perguntas.
fonte
:-)
Você precisa usar o nome do serviço real, como aparece no painel de controle, serviços. Se ele contiver espaços, você deve colocar aspas em torno do nome do serviço.
Para obter o nome do serviço real, digite
net start
sem nenhum parâmetro no prompt de comando. Ele deve fornecer uma lista de todos os serviços em execução para que você possa obter o nome real do serviço. Então é só usarnet start <servicename>
fonte
net start "my-service-name"
bem. É onet start "my-service-name" /blah
que me dá uma mensagem de erro. Eu também tenteinet start "my-service-name" -blah
e isso também é um erro de sintaxe.InstSrv e SrvAny poderiam ajudar nisso? Guia e Links
fonte