Как назначить ограниченный доступ к консольной программе для IIS 6? - PullRequest
0 голосов
/ 08 октября 2010

Допустим, у меня есть простая консольная программа для получения списка файлов по имени папки. Я хочу вызвать консольную программу с использованием кода PHP на сайте, который работает под уникальной учетной записью пользователя Windows (т.е. не по умолчанию для учетной записи веб-пользователя). Есть ли способ разрешить доступ учетной записи Windows к консольной программе, не предоставляя ей общий доступ к cmd.exe? Я работаю с IIS 6 на Windows 2003 Server.

Обновление:

Вот код, который я пробовал использовать 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);
Ошибка

$ может содержать либо:

popen ("C: \ WINDOWS \ system32 \ notepad.exe", r) [function.popen]: слишком большой результат

OR

popen ("C: \ WINDOWS \ system32 \ notepad.exe", r) [function.popen]: нет такого файла или каталога

Понятия не имею, почему сообщение об ошибке противоречиво. Результаты были еще менее многообещающими при использовании proc_open ().

1 Ответ

0 голосов
/ 08 октября 2010

Можете ли вы использовать proc_open() вместо exec()?

С версии 5.2.1 proc_open() больше не требуется, чтобы вы давали доступ к cmd.exe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...