2012-09-18 5 views
0

플랫폼 세부 cmd를 실행하는 명령을 나는 박쥐를 실행하기 위해 PHP의 간부 인() 함수를 사용하려고 시도하고있어 서버 1사용 PHP Exec에서() WINRS/WinRM이이

: IIS7, PHP5, 윈도우 서버 2008 서버 이름을 파일은 다음 명령을 가지고 있습니다 :

winrs -r:server2 "C:\custom_functions.bat" 

그러나, 그 명령을 실행하면 작동하지 않습니다. custom2_functions.bat 파일을 server2에서 직접 실행하면 문제가 없다는 것을 알 수 있습니다. 권한 오류를 추측하고 있습니다.

exec ("whoami")를 실행하면 "nt authority \ network service"가 사용자로 반환됩니다.

exec ("ipconfig") 또는 exec ("dir c : \")와 같은 php exec() 함수를 통해 기본 windows 명령을 실행하면 정상적으로 작동합니다. WINRM을 사용하여 원격 서버에서 명령을 실행하려고 할 때 문제가 발생합니다. 나는 PHP의 system() 함수도 사용했다. 동일한 결과가있다.

도와주세요 !?

답변

0

서버에서 명령을 실행하려면 해당 서버에서 권한이 필요합니다. 프롬프트에서 명령을 수동으로 실행하면 사용자 계정을 통해 액세스 할 수 있습니다.

IIS가 명령을 실행하면 IIS는 server2에 대한 액세스 권한이없는 사용자 빌드로 실행됩니다.

웹 서버 프로세스가 server2에 액세스하는 것을 권장하지 않습니다.

+0

완전히 이해하고 동의합니다. 하지만 필요하다면 웹 서버 프로세스에 server2에 대한 액세스 권한을 부여하려면 어떻게해야합니까? – mraliks

+0

그렇지 않습니다. 심각한 보안 위험이 있습니다! – JvdBerg