выполнение сценария Powershell из php

Я пытаюсь выполнить сценарий PowerShell из PHP, но он не работает.

Сценарий 'newEvent.ps1' создает событие на сервере Exchange.

$psPath = "powershell.exe";
$psDIR = "C:\\wamp\\www\\ant\\assets\\ps\\";
$psScript = "newEvent.ps1";
$runScript = $psDIR. $psScript;
$runCMD = $psPath." ".$runScript." 2>&1"; 

echo "\$psPath  $psPath <br>";
echo "\$psDIR  $psDIR <br>";
echo "\$psScript  $psScript <br>";
echo "\$runScript  $runScript <br>";
echo "\$runCMD   $runCMD  <br>";

exec( $runCMD,$out,$ret);

echo "<pre>";
print_r($out);
print_r($ret);
echo "</pre>";

Он выводит:

$psPath powershell.exe
$psDIR C:\wamp\www\ant\assets\ps\
$psScript newEvent.ps1
$runScript C:\wamp\www\ant\assets\ps\newEvent.ps1
$runCMD powershell.exe C:\wamp\www\ant\assets\ps\newEvent.ps1 2>&1

Array
(
    [0] => File C:\wamp\www\ant\assets\ps\newEvent.ps1 cannot be loaded because the execut
    [1] => ion of scripts is disabled on this system. Please see "get-help about_signing"
    [2] => for more details.
    [3] => At line:1 char:39
    [4] => + C:\wamp\www\ant\assets\ps\newEvent.ps1 <<<<
    [5] =>     + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    [6] =>     + FullyQualifiedErrorId : RuntimeException
    [7] => 
)

Если я запускаю powershell.exe C: \ wamp \ www \ ant \ assets \ ps \ newEvent.ps1 в командной строке, он работает хорошо.

Я впервые пытаюсь сделать что-то подобное. Я запустил Set-ExecutionPolicy RemoteSigned -Scope LocalMachine , но он все равно выдает ту же ошибку. Фактически, я запускал Set-ExecutionPolicy без ограничений , но он все тот же.

12
задан Gilles 'SO- stop being evil' 20 July 2011 в 12:47
поделиться