그래서 나는 다음과 같이 윈도우 7 서비스의 상태에 액세스 할 수 PHP 함수를 호출하고 있습니다에 IIS/PHP 권한을 제공 WAMP 인스턴스에서이 함수는 예상대로 정보 배열을 반환합니다.Windows 서비스 제어 관리자 (SCM)
는 IIS에서 실행하면, 내가 오류 상태 5는 문서에 따라, 다음과 같은 오류에 해당하는 반환받을 :
WIN32_ERROR_ACCESS_DENIED 0x00000005
The handle to the SCM database does not have the appropriate access rights.
그래서 phpinfo()
를 사용하여, 나는 사용자 이름을 확인 이는 PHP에서 환경이 실행 중입니다. WAMP 사이트에서 서비스가 내 사용자 ID (Windows 로컬 관리자 그룹에있는 사용자)로 실행 중입니다.
IIS 버전에서는 사용자가 F6729-44TP6S7$
(내 컴퓨터 이름이고 그 뒤에 $
이옵니다)입니다. 따라서 아마도이 사용자에게 Windows의 SCM (Service Control Manager)에 필요한 권한을 부여하는 것일 수 있습니다.
그러나 문제는 IIS (또는 Windows)의 내부 동작이이 사용자 ID의 출처를 알 수 없다는 것입니다. 즉, 필요한 권한을 부여하는 방법을 모르겠습니다). 사용자가 내 컴퓨터 관리 콘솔에 없으며 IIS 관리 도구에서 정의 된 위치를 찾을 수 없습니다.
질문 :이 PHP 함수가 IIS에서 실행되도록하려면 어떻게해야합니까? IIS에서 PHP 관리자에게 필요한 권한을 부여하려면 어떻게합니까? 또는 PHP 관리자가 실행되는 user-Id를 어떻게 변경합니까?
나는 그것이 유효한 해결책이라고 생각하지 않지만 다른 선택 사항이 없다면 서비스 컨트롤러 ('SC.exe')를 사용하여 특정 사용자/그룹에게 권한을 부여 할 수 있습니다. 'sc sdshow'를 사용하여 현재 SSDL을 얻은 다음 추가 된 권한으로'sc sdset'를 사용할 수 있습니다. 수행중인 작업에 따라 서비스를 쿼리 할 때'scmanager'에 대한 액세스 권한 만 있으면됩니다 :'sc sdset scmanager (SSDL)'. http://technet.microsoft.com/en-us/library/cc742037%28v=ws.10%29.aspx – JoeBilly
[This] (http://msdn.microsoft.com/en-us/library/aa954062. aspx) 귀하의 문제에 대한 공식적인 문서입니다 –