Windows 10 .NET Framework 3.5 설치되지 않은 상태에서 Windows 서비스를 설치할 때 권한이 없다고 하는 문제 [WiX Toolset 고유?]

■증상


  • Windows 서비스 설치 프로그램을 실행하면 서비스를 시작할 권한이 없다고 해서 설치를 성공적으로 완료할 수 없습니다.
  • 이벤트 뷰어를 확인하면 설치 자체가 완료되었지만 서비스를 시작하지 못했습니다 (이벤트 ID : 1033).

  • ■발생 환경


  • 대상 OS : Windows 10 Pro x64 (수중에 Home이 없기 때문에 모르겠지만, 에디션 불문하고 발생한다?)
  • 위의 Windows 10 Pro는 Windows 7 Pro의 게스트 운영 체제로 시작됩니다 (VMware)
  • Windows 서비스 설치 msi 실행 (실무에서 사용하는 서비스였습니다)
  • msi는 WiX Toolset 을 사용하여 만든 것.
  • 해당 Windows 서비스의 대상 프레임워크는 .NET 3.5 SP1
  • 설치 시 서비스 로그온 계정은 LocalService
  • UAC가 "통지하지 않음"설정 후 OS 재부팅
  • OS 로그온 계정은 Administrator 권한입니다

  • ■참고 캡처(서비스명은 삭제하고 있습니다)


  • 설치 실패시 오류 대화 상자
  • 설치 실패 시 이벤트 로그

  • ■ 음… LocalService 계정에 대한 특권이 없다는 것은 어떻게



    흠, LocalService로 시작하는 특권이 없으면…

    태스크 매니저를 봐도, LocalService로 기동하고 있는 서비스는 많이 있습니다만.
    시도에서 LocalService에서 실행중인 실행중인 sqlbrowser.exe를 중지/시작해보십시오.
    … 아무것도 문제 없잖아.

    특권이 없다고는 도대체···우고고!
    (그렇다고는 해도 이 근처에서 과연 어쩐지 권한 똥이 문제가 아닐까 봐 온다.)

    ■ 상황 정리


  • 이 서비스는 기본적으로 LocalService에 설치됩니다.
  • Windows 10 Pro (x86 | x64 모두) 도입 실적 있음
  • 대상 컴퓨터와 다른 데스크톱 Windows 10 Pro x64에서 설치하고 오류없이 시작할 수 있습니다
  • 다른 게스트 OS Windows 7 Professional에서는 원래의 OS에 문제없이 설치, 서비스를 시작할 수있었습니다

  • 음, 머신 고유의 문제인가…
    Windows 10 Pro간에 차이가 있다는 것은, 뭔가 부족하지 않을 것이다, 라고 하는 자신 나름의 결론에.
    여러가지 생각해, Windows 10 머신을 설정할 때 무의식적으로 하고 있는 것,
    있었어, 기억해.

    기본 Windows 10에는 .NET Framework 3.5가 사전 설치되어 있지 않습니다.

    서비스 본체의 타겟 프레임은 .NET Framework 3.5 SP1.
    한편, .NET Framework 4계에서는 3.5 이하는 호환성이 없다.

    서두의 에러 메세지와 관계가 지금 하나 연결되지 않는 것 같지만(내가 무지할 뿐일지도),
    글쎄, 똑같지만 먼저 .NET Framework 3.5 SP1을 설치해 보겠습니다.
    (마음의 목소리 : 글쎄, 해결할 수 없어.)

    ⇒ 문제 해결. 거짓말.

    ■향후의 과제


  • WiX Toolset 관련 문제인지, Visual Studio의 setup 프로젝트에서도 발생하는 것의 분리 (msi는 어느 쪽도 같지만)
  • Windows 10 Home에서도 재현할까
  • "서비스를 시작할 '특권'이 없다"고 대상 프레임 워크가 설치되지 않은 관계 조사
  • 좋은 웹페이지 즐겨찾기