У меня есть файл index.php, у которого есть кнопка, запрашивающая другой php файл с именем script.php.
Эта веб-страница размещена на моем локальном IIS, работающем под управлением Windows Server 2012 R2 DTC.
Местоположение файлов: c:\inetpub\wwwroot
Я установил PHP. Он работает нормально.
Я могу получить результат, если я запустил эту команду в консоли powershell, но не ответил при вызове с веб-страницы. Я установил политику выполнения без ограничений как для 32, так и для 64-битной оболочки, но по-прежнему не помог.
index.php
<form id="contact-form" method="post" action="script.php">
<input type="submit" class="button orange" name="submit" value="Check Services">
<form>
скрипт php
<?php
$output=shell_exec('powershell.exe "Get-Service"');
echo $output;
?>
Когда я запускаю индекс файла php в браузере, я получаю следующее сообщение об ошибке.
Get-Service: не удается открыть диспетчер управления сервисом на компьютере. '. Для этой операции могут потребоваться другие привилегии. В строке: 1 char: 1 + Get-Service + ~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [Get-Service], InvalidOperatio nException + FullyQualifiedErrorId: System.InvalidOperationException, Microsoft.Power Shell.Commands.GetServiceCommand
Для файлов и сообщений об ошибке, ссылка для ссылки http://cloudbrox.com/o9tj/
Что вы получаете при запуске этого кода:
<?php
$output=shell_exec('powershell "[Security.Principal.WindowsIdentity]::GetCurrent()"');
echo $output;
?>
Вот пример полученного мной результата, обратите особое внимание на поле Name:
AuthenticationType : NTLM
ImpersonationLevel : None
IsAuthenticated : True
IsGuest : False
IsSystem : False
IsAnonymous : False
Name : SHADOWFAX\Goyuix
Скорее всего, учетная запись, которую использует PHP, просто не имеет необходимых прав для получения списка служб, запущенных на локальном компьютере. Это поможет вам определить эту учетную запись, а затем вы сможете успешно оценить свои параметры для изменения учетной записи, используемой PHP, и/или предоставления соответствующих разрешений для этой учетной записи.