2011-08-16 2 views
3

services.mmc가 열려 있으면 "sc delete ServiceKeyName"이 작동하지 않습니다. 그것은 삭제를 위해 그것을 표시합니다 (그것은 무엇이든! 그것이 내가 원하는만큼 멀리하는 것을 의미합니다).실제로 ** services.msc가 열려있는 동안 서비스 ** 삭제

제 질문은 services.mmc가 열려 있는지 여부에 관계없이 작동하는 서비스를 삭제할 수있는 방법이 있습니까? 또는 삭제하기 전에 services.mmc의 모든 인스턴스가 닫혀 있는지 확인해야합니까?

나는 그것은 또한 사용자가 즉시 을 수행하도록 요청했다 일을 할 수없는 이유에 대한 핸들과 비슷한 변명을 닫는 회담을 DeleteService

http://msdn.microsoft.com/en-us/library/ms682562%28v=VS.85%29.aspx

http://msdn.microsoft.com/en-us/library/ms682571%28v=VS.85%29.aspx

사용으로 찾고 있지만 해요. 따라서 DeleteService에서도 services.mmc를 닫을 것을 요구한다면 DeleteService를 구현하는 대신 services.mmc에서 sc를 삭제하고 kill 프로세스를 고수 할 것입니다. 나는 그것이 광고하는 것을하는 방법을 원한다. (변명의 여지없이 - 아무것도 기다리지 않는다.)

+0

services.mmc가 열린 상태에서 서비스를 항상 제거합니다 (우리 제품군의 버전 간 전환). DeleteService를 들여다 보지 못했지만 서비스를 먼저 중지하는 것이 중요하다고 생각합니다. –

+0

안녕하세요, Marjan, 오 우리는 서비스를 중지하지만 어떤 방법으로 서비스를 중지 할 수 있습니까 ("sc stop"또는 ControlService (.., SERVICE_CONTROL_STOP, ..), 서비스 제거 후 지연이 있습니까 (예 : sleep (3000)) 또는 재설치를 바로 실행합니까? – Sam

+1

어쨌든 services.mmc 또는 net stop 명령을 통해 중지합니다./install 명령 줄 매개 변수를 인식하는 새로운 exe를 사용하여 다시 설치합니다 (vs install 또는 다시 설치하면 OpenService/DeleteService, CreateService 순으로 종료되는 Uninstall/Install 시퀀스가 ​​수행되므로 즉시 처리됩니다. –

답변

3

이 작업을 수행하려면 서비스 제어 관리자에게 핸들을 닫고 다시 열려면 MMC 스냅인 서비스가 필요합니다. 그것은 그렇게하지 않으므로 그대로 행동을 받아 들여야합니다.

1

나는 똑같은 소리가 들렸다. 서비스 이름 뒤에 -remove 명령을 전달하면 services.mmc가 열려 있어도 제거됩니다. 또한 -remove 명령 줄 net stop 'servicename'을 통해 먼저 서비스를 중지하십시오. 행운을 빈다.

관련 문제