剧本我想建立一个小型webinterface给予我们的用户处理链接克隆某些权限。 在网络服务器(运行IIS的Windows Datacenter 2008 R2)上,我安装了PowerCLI。该网站在我的用户帐户(域管理员)下运行,以排除任何权限问题。呼叫的PowerCLI从PHP
我的PHP文件看起来像这样:
$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>";
我叫consolefile从\progra~2
,为\program files (x86)
不停地缠着我的问题。
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脚本叫这个样子的:
Connect-VIserver -server "MyVSserver"
$VDICluster=get-cluster -Name "MyCluster"
get-vm -location $VDICluster -name "Server*"
当调用完整的命令(在我的PHP输出的第一行)从Web服务器上的命令提示符处运行,并在我的帐户(IIS中使用的相同帐户)上运行,一切正常,我可以获取关于链接克隆的信息。 正如您所看到的,浏览器输出报告PowerCLI命令未知。 我完全失去了,任何人都有这方面的经验?
“在IIS中使用相同的帐户”?你的意思是你在正常的用户帐户下操作该deamon? – arkascha
这听起来像是PATH环境变量的问题。 – arkascha
是的,我运行(纯粹作为测试,我将创建一个专门的服务帐户,一旦他的作品)我的个人域管理员帐户下的IIS网站排除任何权限限制。 我看不到路径如何在这里,我指定所有文件调用的完整路径。 –