none
서비스 프로그램 설치 시 설정하는 계정 / 패스워드의 역할이 궁금합니다. RRS feed

  • 질문

  • CreateService()의 인자 중 lpServiceStartName, lpPassword의 역할이 무엇인지 궁금합니다.

    SC_HANDLE CreateServiceA( SC_HANDLE hSCManager, LPCSTR lpServiceName, LPCSTR lpDisplayName, DWORD dwDesiredAccess, DWORD dwServiceType, DWORD dwStartType, DWORD dwErrorControl, LPCSTR lpBinaryPathName, LPCSTR lpLoadOrderGroup, LPDWORD lpdwTagId, LPCSTR lpDependencies, LPCSTR lpServiceStartName, LPCSTR lpPassword );

    개인 PC에서 사용 중인 계정 명과 패스워드를 입력해도 아무런 영향이 없는 것 같습니다.

    무조건 LocalService나 NetworkService로 설정해야 되는 건지.. 아니면 그 외의 사용법이 있는건지 궁금합니다.

    2020년 7월 8일 수요일 오전 9:56

답변

모든 응답

  • lpServiceStartName과 lpPassword를 지정해서 CreateService를 실행해 성공은 했지만 명시한 계정이 아닌 Local SYSTEM 계정으로 등록된다는 건가요? 아니면 혹시 CreateService API 실행이 실패한다는 의미인가요?
    2020년 7월 9일 목요일 오전 12:05
  • 답변을 미처 확인하지 못해 응답이 늦은 점 죄송합니다.

    현재 CreateService를 통해 서비스 설치는 성공하지만, 서비스 시작은 실패하고 있습니다. (1069, '서비스가 로그온 실패로 인해 시작되지 않았습니다' 에러가 표시됩니다.)

    서비스 설치에 사용한 코드는 다음과 같습니다.

    hSrv = CreateService(hScm,
    	lpszServiceName,
    	lpszServiceName,
    	SERVICE_ALL_ACCESS,
    	SERVICE_WIN32_OWN_PROCESS,
    	SERVICE_AUTO_START,
    	SERVICE_ERROR_NORMAL,
    	lpszBinaryPathName,
    	NULL,
    	NULL,
    	lpszDependencies,
    	_T("JSYANG-PC\\jsyang"),
    	_T("Password")
    );

    서비스 프로그램과 서비스 설치 프로그램을 별도로 구현하여 2개의 exe 파일이 있는 상태입니다. 그리고 서비스 설치 프로그램에서는 '현재 로그온 된 사용자'의 계정 정보를 입력하여 CreateService() API를 호출합니다.

    물론, 계정 정보는 정확히 입력하였습니다.

    위 파라미터의 사용 목적이 무엇인지, 어떻게 사용해야 하는지 궁금합니다.


    • 편집됨 graze1004 2020년 7월 14일 화요일 오전 9:21
    2020년 7월 14일 화요일 오전 9:20
  • 다음의 글을 참고하세요.

    사용자 계정을 지정해 CreateService API로 서비스를 등록한 경우 "Error 1069: The service did not start due to a logon failure." 오류발생
    ; https://www.sysnet.pe.kr/2/0/12266

    • 답변으로 표시됨 graze1004 2020년 7월 14일 화요일 오후 11:33
    2020년 7월 14일 화요일 오후 3:02