私はPHP5.4、IIS7.5を使用しています。
簡単なコマンドを実行すると、機能します:
<?php
exec("dir", $r);
print_r($r);
?>
ただし、.exeファイルを開くと機能せず、ページはphpタイムアウトまで読み込まれ、メモ帳は開かれません。
<?php
exec("notepad.exe", $r);
print_r($r);
?>
また、コマンドラインでメモ帳のphpを実行すると、機能します。
php -f <file>
問題はIISにあると思いますが、何がわかりません。ありがとう!
アップデート
別のテストケースを実行しましたが、機能しません。ページの読み込みは完了しますが、タスクは削除されません。
<?php
$r = exec("SCHTASKS.exe /Delete /TN TaskTest /F");
print_r($r);
?>
IIS_IUSRSには、schtasksを実行するためのアクセス許可があります。
解決
インタラクティブプログラムであるため、メモ帳が開きません。
タスクスケジューラの場合、IUSRへのタスクフォルダ(C:\ Windows \ System32 \ Tasks)への読み取りおよび書き込み権限を付与します。