none
[C#] 윈도우 서비스에서 사용자 계정으로 프로그램 실행시키기 RRS feed

  • 질문

  • 안녕하세요

    윈도우 서비스를 이용해서 자격 증명을 제거하려고 하는데,

    윈도우 서비스는 시스템 계정으로 실행이 되어서 시스템 계정의 자격 증명에만 접근을 하는 것 같습니다.

    그래서 현재 로그인한 사용자 계정으로 배치 파일을 실행시켜서 자격 증명을 제거하고 싶은데, 어떻게 해야 할까요?


    2020년 4월 5일 일요일 오전 9:00

답변

  • "현재 로그인한 사용자 계정"이라는 게, 윈도우의 경우 다중 사용자가 로그인할 수 있으므로 구분할 수 있는 기준이 없습니다. 이런 경우, 로그인한 사용자 계정에서 실행한 프로그램이 서비스로 실행 중인 프로그램에서 제공하는 API를 호출할 때 자신의 자격 증명을 전달해 호출자 기준의 보안으로 실행하도록 만드는 방법이 있습니다.

    혹은, 만약 로그인 한 사용자가 단일 계정이라고 가정할 수 있다면 그냥 쉽게 그 사용자 계정으로 실행하도록 윈도우 서비스의 계정을 변경해 주면 됩니다.

    • 답변으로 표시됨 라바 2020년 4월 6일 월요일 오전 4:28
    2020년 4월 6일 월요일 오전 1:21

모든 응답

  • "현재 로그인한 사용자 계정"이라는 게, 윈도우의 경우 다중 사용자가 로그인할 수 있으므로 구분할 수 있는 기준이 없습니다. 이런 경우, 로그인한 사용자 계정에서 실행한 프로그램이 서비스로 실행 중인 프로그램에서 제공하는 API를 호출할 때 자신의 자격 증명을 전달해 호출자 기준의 보안으로 실행하도록 만드는 방법이 있습니다.

    혹은, 만약 로그인 한 사용자가 단일 계정이라고 가정할 수 있다면 그냥 쉽게 그 사용자 계정으로 실행하도록 윈도우 서비스의 계정을 변경해 주면 됩니다.

    • 답변으로 표시됨 라바 2020년 4월 6일 월요일 오전 4:28
    2020년 4월 6일 월요일 오전 1:21
  • C#의 경우라면 NamedPipe로 구현하시면 간단하게 그 부분을 제어할 수 있을 것입니다. 다음의 글을 참고하세요.

    https://stackoverflow.com/questions/15865513/can-not-impersonate-the-permission-in-the-namedpipes-if-client-and-server-are-in

    2020년 4월 6일 월요일 오전 4:55