Windows에서 특정 시작 매개 변수를 사용하여 서비스를 시작하는 방법


17

특정 매개 변수를 사용하여 서비스를 시작하려면 어떻게합니까? 에서 또 다른 질문 나는 발견했다

네트 스타트 servicename blah

그러나 이것을 시도하면 net구문 오류가 발생합니다.

내가 도대체 ​​뭘 잘못하고있는 겁니까?

편집 : 명확히하기 위해net start servicename잘 작동하지만 매개 변수를 서비스에 전달해야합니다. services.msc서비스를 시작하기 전에 시작 매개 변수를 작성하여수동 으로이 작업을 수행 할 수 있습니다. 그러나 스크립트에서 어떻게 할 수 있습니까?

또 다른 편집 : 죄송하지만 내 질문은 잘못되었습니다 . 내 테스트에는 더 많은 매개 변수가 있었으며/blah net start불평하지 않았습니다. 사실, 슬래시로 시작하는 것은 괜찮습니다 . 그래서net start servicename /blah작품,net start servicename blah작동하지 않습니다. 내가 필요하기 때문에net start servicename /foo bar그것이bar문제입니다.

답변:


29
sc 시작 fooservice arg1 arg2 ...

나는 당신의 대답을 어떻게 그리워했는지 잘 모르겠지만, 지금 (사고로) 그것을 발견하게되어 매우 기쁩니다. 이것으로 시작하지 않는 매개 변수에서도 매력처럼 작동합니다 /. 고마워요!
sbi

2018 년이며 Windows 10에서는 "sc start ..."또는 "net start ..."가 작동하지 않는 것 같습니다. 레지스트리 편집은 serverfault.com/questions/507561/…에서
MarcH

8

NET START내가 아는 한 임의의 매개 변수를 전달할 수 없습니다 (/ 접두사가 있어야 함) 올바른 레지스트리 키를 수정하고 서비스를 중지 / 시작하는 것이 올바른 방법이라고 생각합니다. 사용자 정의 서비스를 MyService라고 가정하십시오.

[HKLM\SYSTEM\CurrentControlSet\Services\MyService]
"ImagePath":C:\Projects\MyService\bin\MyService.exe Parameter1 Parameter2

실제로 더 나은 방법은 레지스트리 나 파일 시스템과 같이 서비스가 알고있는 곳에 구성을 저장하고 필요한 값을 읽는 것입니다. 보시다시피 커맨드 라인을 커스터마이징하는 것은 생각보다 조금 더 고통 스럽습니다.

우연히 .NET 개발 서비스 인 경우 파일 시스템에서 실행 파일의 복사본을 n 개 만들 수 있으며 각각 적절한 app.config 파일에서 매개 변수를 자동으로 가져옵니다.

Win32 상자 외부로 너무 밟은 것 같습니다. 이것은 맞춤형 개발처럼 들리므로 다른 제공 솔루션 중 하나는 이상적이지는 않지만 올바르게 작동하고 더 안전한 방법입니다.


어. 서비스는 구성 파일을 가져옵니다. 기본 파일 이름을 사용하거나 전달 된 이름을 사용합니다. 두 개의 서로 다른 서비스 인스턴스가 실행되어야하므로 서로 다른 구성 파일을 가리켜 야합니다. 레지스트리를 다루는 것은 매우 못생긴 해킹으로 보입니다. 실제로 다른 방법이 있습니까 (GUI)?
sbi

Goyuix, 편집 한 질문을 참조하십시오. net start 않는 매개 변수를 사용할 수 있지만, 만로 시작 /.
sbi

Goyuix, 나는 지금 사용한다 sc.exe. grawity의 답변을 참조하십시오 (어쨌든 놓쳤습니다).
sbi

4

를 사용할 때 매개 변수 앞에 슬래시가 필요합니다 net start. 또한 공백이있는 매개 변수를 인용하십시오.

net start servicename /param0 /"param1 with spaces" /"/param2_has_slash"

내 문제를 다시 봐 슬래시로 시작하는 매개 변수도 있습니다. 그럼 내가 어떻게 통과할까요?
sbi

이것을 시도하십시오 : net start servicename / "/ foo"/ bar
Even Mien

3

net start servicename /foo 단일 논쟁

net start servicename /"foo bar" 문자열 또는 인수 목록

참고 :이 질문은 8 세이지 만 승인 된 답변에 대해 언급 할 평판이 없으며 2018 년에도 여전히 Google 최고의 결과이므로 최종 편집 질문과 관련하여 현재 작동중인 것을 명확히하고 싶었습니다.


참고 : 나는 당신에게 공감대를 주었으므로 이제 당신의 대답은 4 위이며, 당신은 약간의 대답을 얻었습니다. 여기서 즐기십시오! :-)
sbi

1

제어판 서비스에 나타나는 실제 서비스 이름을 사용해야합니다. 공백이 있으면 서비스 이름을 따옴표로 묶어야합니다.

실제 서비스 이름을 얻으려면 net start명령 프롬프트에 매개 변수없이 입력 하십시오. 실제 서비스 이름을 얻을 수 있도록 실행중인 모든 서비스 목록을 제공해야합니다. 그런 다음 사용하십시오net start <servicename>


Robert, 내가 설치 한 다음 스크립트로 시작하는 서비스입니다. 난 net start "my-service-name"괜찮아 그건 net start "my-service-name" /blah나에게 오류 메시지를 제공한다. 나는 또한 시도 net start "my-service-name" -blah했고 이것도 구문 오류입니다.
sbi

0

InstSrv와 SrvAny가이를 지원할 수 있습니까? 가이드 및 링크


나는 그것을 간단히 보았고 그렇게 생각하지 않습니다. (잘못되면 수정하십시오.) 실제 서비스 실행 파일이 있고 정상적으로 작동합니다. 스크립트에서 스크립트를 설치하고 시작해야하며 매개 변수를 서비스에 전달해야합니다.
sbi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.