假设我有一个简单的控制台程序来获取给定文件夹名称的文件列表。我想在运行在唯一Windows用户帐户(即不是默认Web用户帐户)的站点上使用PHP代码调用控制台程序。有没有一种方法可以让Windows帐户访问控制台程序,而无需对cmd.exe进行全面访问?我在Windows 2003 Server上使用IIS 6。
更新
这是我尝试使用popen()
的一些代码$reg_cmd = '"C:\WINDOWS\system32\notepad.exe"' ;
$error = '';
$handle = popen($reg_cmd, 'r');
if (!$handle){
$last_error = error_get_last();
$error = $last_error['message'];
}
else{
while (!feof($handle)) {
$result .= fread($handle, 2096);
}
}
pclose($handle);
$ error最终包含:
popen(“C:\ WINDOWS \ system32 \ notepad.exe”,r)[function.popen]:结果太大
OR
popen(“C:\ WINDOWS \ system32 \ notepad.exe”,r)[function.popen]:没有这样的文件或目录
我不知道为什么错误消息不一致。使用proc_open(),结果更不可能。
答案 0 :(得分:0)
您可以使用proc_open()
代替exec()
吗?
从版本5.2.1 proc_open()
不再要求您授予cmd.exe
的访问权限。