[解決済み] phpからPowershellスクリプトを実行する
質問内容
PHPからpowershellスクリプトを実行しようとしているのですが、うまくいかないようです。
スクリプト '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 unristricted
が、やはり同じです。
どのように解決するのですか?
コマンドをシングルクオートで囲んでいるようです。 これを削除すると、コマンドが実行されるようになると思います。
shell_exec
は、実行したコマンドの出力を返します。 さらに診断するには、出力を変数に格納し、それをプリントアウトします。
$output = shell_exec($runCMD);
echo '<pre>' . $output . '</pre>';
スクリプトの実行を有効にしてください。 この機能はデフォルトではオフになっています。 PowerShell スクリプトを実行したい各マシンで、スクリプトの実行を有効にする必要があります。 実行
about help_signing
をご覧ください。
マイクロソフトでは
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
. これにより、マシン上のすべてのユーザーアカウントでローカルのスクリプトを問題なく実行できますが、インターネットからダウンロードしたスクリプトを実行する場合は確認が必要です。 これは、管理者プロンプトで実行する必要があります。 64ビットオペレーティングシステムを実行している場合、64ビットと32ビットの両方のシェルからこれを実行する必要があります。
関連
-
[解決済み] php5パッケージのインストール候補がない (Ubuntu 16.04)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] インストールされたPowerShellのバージョンを確認する
-
[解決済み] PowerShellで「このシステムではスクリプトの実行が無効になっています」と言われる。
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] PHPスクリプトからJSONを返す
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み】PowerShellスクリプトを実行する方法
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】move_uploaded_fileは、「failed to open stream: Permission denied" というエラーが出る
-
[解決済み】不明なMySQLサーバーのホスト
-
[解決済み】Xampp ローカルホスト/ダッシュボード
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み] [Solved] Fatal error: 非オブジェクトのメンバ関数fetch_assoc()の呼び出し [重複]。
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】Wordpressの子テーマのstyle.cssが効かない。
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法