내가 PHP를 사용하여 배치 파일을 실행하는 것을 시도했다 :이 작품의PHP 왜 배치 파일을 실행할 수 없습니까?
$script = "\\\MAFINFWWWPV02\D$\WebContent\\engsys.corp.ftr.com\BatchFiles\CopyFiles.bat";
exec($script,$ReturnArray,$ReturnValue);
//shell_exec($script);
//system('cmd /c $script');
//system($script,$ReturnValue);
없음! 나는 시도하고 무슨 일이 일어나고 있는지 볼 수
var_dump($ReturnValue); echo "<br>";
var_dump($ReturnArray); echo "<br>";
을 시도했지만,이 같은 정상 출력으로 보이는 얻을 :
INT (1)
배열 (0) {}
하지만 수동으로 실행할 때 잘 작동하는 내 bat 파일로 복사하려는 파일은 복사되지 않습니다.
가 \
필요를 수행
편집 추가 질문은 파일 주소를 이스케이프 할?
CopyFiles.bat NT AUTHORITY \ IUSR : (I) (RX)
NT AUTHORITY\SYSTEM:(I)(F) NT AUTHORITY\NETWORK:(I)(RX) CORP\ibb601:(I)(F) CORP\taw330:(I)(F) CORP\mmm976:(I)(F) BUILTIN\Administrators:(I)(F) BUILTIN\Users:(I)(RX,W)
내가 여기에 편집이
내가 icacls
실행에서 무엇을 얻을 모든 권한을 갖고 있고 다른 모든 사람들은 적어도 읽기/실행을해야합니다.
내가 그것을 좁혀 3
편집 할 수 있습니다. 명령이 작동하지 않는 것은 아닙니다. 권한이 파일에 대해 거부되었습니다. 나는 모든 사람이 전체 폴더에 대한 쓰기 및 읽기/실행 권한을 갖고 있기 때문에 이해하지 못합니다.
편집하는 것은 4
나는 그것이 작동려고 위의 명령을 실행하고 있습니다. 내 화면에 오류가 무엇인지 인쇄하려면 함수 (var_export(my_exec("shell_exec($script)"));
)를 사용하고 있습니다. 나는 이런 식으로 계속하고있다 :
나는 각'\'shell_exec \ '은 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않는다.
shell_exec
, system
및 exec
에 대해 다른 하나를 얻을. 명령이 인식되지 않는다고 계속 말하고 있습니다. 이것은 Windows Server 2012 R2 Standard 64 비트에서 실행됩니다. 명령에 내가 잘못하고있는 것이 있습니까? 나는 (내가 다른 게시물에 그것을 발견) 오류를 인쇄하기 위해 사용하고 기능 : 당신은 때 작은 따옴표 안에 \
을 탈출 할 필요가 없습니다
function my_exec($cmd, $input='')
{
$proc=proc_open($cmd, array(0=>array('pipe', 'r'), 1=>array('pipe', 'w'), 2=>array('pipe', 'w')), $pipes);
fwrite($pipes[0], $input);fclose($pipes[0]);
$stdout=stream_get_contents($pipes[1]);fclose($pipes[1]);
$stderr=stream_get_contents($pipes[2]);fclose($pipes[2]);
$rtn=proc_close($proc);
return array('stdout'=>$stdout,'stderr'=>$stderr,'return'=>$rtn);
}
웹 서비스가 아마 서버, 위치 또는 박쥐 파일에 액세스 및/또는 아무튼 권한이없는 실행하는 사용자를 \ B 형 \에 c \ 복사 할 파일이나 대상에 액세스 할 수있는 권한이 없습니다. – AbraCadaver
@AbraCadaver 사용자가 파일 위치와 .bat 파일 위치 모두에 대한 읽기/쓰기 액세스 권한을 가지고 있는지 확인했습니다. – Mike
@AbraCadaver 정확히 어떤 사용자가 사용되고 있는지 확인하는 방법이 있습니까? 또는 특정 사용자를 사용하도록 강제 할 수 있습니까? – Mike