I'm trying to execute a powershell script from PHP, but it does not seem to work.
The script 'newEvent.ps1' creates an event on the Exchange server.
$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>";
It outputs:
$psPath powershell.exe
$psDIR C:wampwwwantassetsps
$psScript newEvent.ps1
$runScript C:wampwwwantassetsps
ewEvent.ps1
$runCMD powershell.exe C:wampwwwantassetsps
ewEvent.ps1 2>&1
Array
(
[0] => File C:wampwwwantassetsps
ewEvent.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:wampwwwantassetsps
ewEvent.ps1 <<<<
[5] => + CategoryInfo : NotSpecified: (:) [], PSSecurityException
[6] => + FullyQualifiedErrorId : RuntimeException
[7] =>
)
If I run powershell.exe C:wampwwwantassetsps
ewEvent.ps1
on the command-line, it works fine.
This is the first time im attempting something like this. I ran Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
but it still gives me the same error.
In fact I ran Set-ExecutionPolicy unristricted
, but it's still the same.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…