удаленный сервер — доступ PSEXEC запрещен при использовании переполнения стека

Я хочу получить количество процессоров, запущенных на удаленном сервере, с моего сервера.
Для этого я проверяю информацию с помощью этой командной строки:

C:\Users\Administrator>psexec -accepteula \\remote_computer_name -u remote_computer_name\admin -p my_password cmd /C "set number_of_processors"

И он возвращает мне результат, который я хотел:

Результат командной строки

Но когда я пытаюсь получить тот же результат, используя его в сценарии PHP, он говорит, что доступ запрещен.

PsExec v1.98 — удаленное выполнение процессов Copyright (C) 2001-2010 Mark
Руссинович Сисинтерналс — www.sysinternals.com

В доступе отказано.

Подключение к удаленному_компьютеру_имя … Запуск PsExec
служба на удаленном_компьютере_имя … Не удалось запустить службу PsExec на
имя_удаленного_компьютера: подключение к имени_компьютера_устройства … Запуск PsExec
служба на удаленном_компьютере_имя …

Вот мой PHP-скрипт:

<?php
function executeCmd($cmd,$params,$return)
{
//$resTable = array();
$resInt = -1;
exec("$cmd $params",$resTable,$resInt);
//$resTable=shell_exec($cmd $params);
//print_r($resTable);
if($return == 40)// return associative table
return $resTable;
if($return == 41)// return int
return $resInt;
}

$cmd    = "psexec";
$params   = " -accepteula \\\\remote_computer_name -u remote_computer_name\\admin -p password cmd /C \"set number_of_processors\" 2>&1";
//$res = system($cmd,$params,40);
$res = executeCmd($cmd,$params,40);

for($i=0;$i<count($res);$i++)
{
print_r($res[$i]);
echo "</br>";
}
?>

Я использую тот же сценарий на другой паре серверов, и он работает очень хорошо. Что я упустил ?

1

Решение

Наконец-то нашел ответ! Я только добавляю аргументы -h в мою командную строку.

-h Если целевая система Vista или выше, имеет ли процесс
запустить с повышенным токеном аккаунта, если он доступен.

0

Другие решения

Других решений пока нет …