リンククローンを処理するための特定の権限をユーザに与えるための小さなウェブインタフェースを構築したいと考えています。 Webサーバー(IISを実行するWindows Datacenter 2008 R2)で、PowerCLIをインストールしました。このウェブサイトは自分のユーザーアカウント(ドメイン管理者)の下で実行され、権限の問題を排除します。PHPからPowerCLIスクリプトを呼び出す
私のPHPファイルには、次のようになります。\program files (x86)
は問題で私を悩まままとして
$PowerCliCommand="C:\\WINDOWS\\system32\\windowspowershell\\v1.0\\powershell.exe -PSConsoleFile \"C:\\Progra~2\\VMware\\Infrastructure\\vSphere PowerCLI\\vim.psc1\" -file C:\inetpub\lcmgmt\listlcs.ps1";
echo $PowerCliCommand . "<br>";
exec($PowerCliCommand, $Output, $ErrorReturned);
echo "<pre>";
print_r($Output);
print_r($ErrorReturned);
echo "</pre>";
私は、\progra~2
からConsoleFileのを呼び出します。
次のように私のブラウザでPHPの出力は次のとおりです。
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -PSConsoleFile C:\Progra~2\VMware\Infrastructure\vSphere PowerCLI\vim.psc1" -file C:\inetpub\lcmgmt\listlcs.ps1
Array
(
[0] => Connect-VIserver : The term 'Connect-VIserver' is not recognized as
> the name of
[1] => a cmdlet, function, script file, or operable program. Check the spelling of th
[2] => e name, or if a path was included, verify that the path is correct and try agai
[3] => n.
[4] => At C:\inetpub\lcmgmt\listlcs.ps1:4 char:2
[5] => + Connect-VIserver -server "MyVSserver"
と呼ばれるPowerShellスクリプトは次のようになります。私のPHP出力の(最初の行の完全なコマンドを呼び出すとき
Connect-VIserver -server "MyVSserver"
$VDICluster=get-cluster -Name "MyCluster"
get-vm -location $VDICluster -name "Server*"
私のアカウント(IISで使用されているアカウントと同じ)で動作しているWebサーバーのコマンドプロンプトから、すべて正常に動作し、リンクされたクローンに関する情報が得られます。 ブラウザの出力から、PowerCLIコマンドが不明であることが報告されています。 私は完全に失われています、誰もこれについての経験がありますか?
"IISで使用されているのと同じアカウント"ですか?通常のユーザーアカウントでdeamonを操作するということですか? – arkascha
これは 'PATH'環境変数の問題のようです。 – arkascha
はい、私は個人的なドメイン管理アカウントの下でIIS Webサイトを使用して、許可の制限を排除するためにテストを行います(純粋にテストとして、専用のサービスアカウントを作成します)。 ここでパスがどのようになっているのかわかりません。呼び出されたすべてのファイルのフルパスを指定します。 –