2011-02-23 3 views
2

그래서 서비스를 배치하는 MSI가 있습니다. 서비스로 인해 MSI serviceInstall이 실패하고 일부 컴퓨터에서는 시작되지 못함

 <ServiceInstall Id='ServiceInstall' ErrorControl='ignore' Type='ownProcess' DisplayName='MetricsReportingService' Description='It does metrics reporting' Name='MetricsReportingService' Start='auto' Account='[SERVICEACCOUNT]' Password='[SERVICEACCOUNTPASSWORD]' /> 
     <ServiceControl Id='MetricsReportingService' Remove='uninstall' Name='MetricsReportingService' Start='install' Stop='both' Wait='yes' /> 

나는 내 자신의 상자에서이 서비스를 배포

, 배포 잘 작동하지만, 내가 다른 사람의 컴퓨터에 배포 할 때 나는 오류 1920, 서비스를 시작하지 못했습니다 얻을.

이제 두 컴퓨터에서 동일한 서비스 계정과 암호를 사용하고 있습니다 (이 계정에는 두 컴퓨터 모두에서 관리자 권한이 있음). 사실, 두 기계에서 모두 동일한 매개 변수를 사용하지만 하나는 통과하고 다른 하나는 실패합니다.

내 서비스에서 이벤트 로깅이 표시되지 않으므로 내 코드에 이벤트가 표시되지 않습니다.

이러한 불일치의 원인은 무엇입니까?

+0

Wait = 'no'로 설정하면 서비스를 시작하기 전에 설치를 완료 할 수 있습니다. 그렇게하면 로컬에서 시작할 수 있습니다. – user467384

답변

1

사용자 지정 사용자 계정에 대한 서비스를 설치하는 경우 계정에 서비스를 시작할 수있는 권한이 있는지 확인해야합니다 (기본적으로 서비스가 없습니다). http://support.microsoft.com/kb/315276

예를 들어,이 명령 줄을 사용할 수 있습니다 : 해결책은 사용자 지정 작업으로 Ntrights.exe의 사용하여 이러한 권한을 설정하는 것입니다

ntrights.exe -u [SERVICEACCOUNT] +r SeServiceLogonRight 

당신은 또한 DLL 사용자 지정 작업을 사용하여 시도 할 수있는 사용자 정의 코드를 통해 권한을 설정합니다. 이 사용자 지정 작업은 서비스를 설치하기 전에 실행해야합니다.

+0

저는 이것이 Server 2008 R2와 동일하다고 생각합니다. http://technet.microsoft.com/en-us/library/cc794944(WS.10).aspx – user467384

0

필자의 경우 사용자에게 사용자 권한을 추가해야했습니다. 나는 맞춤 행동과 this code으로 해냈다. Win8 및 Server 2008 R2에 대한 사용자 권한을 추가하지 않고도 작동했습니다. Win 7이나 Win XP에서는 작동하지 않았습니다. 희망이 도움이됩니다.

관련 문제