我想要建立一个小的网络界面,以授予我们的用户处理链接克隆的某些权限。在webserver (WindowsDatacenter2008Iis运行R2 )上,我已经安装了PowerCLI。该网站运行在我的用户帐户(域名管理),以排除任何权限问题。
我的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>";我从\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*"当从When服务器上的命令提示符调用完整命令( PHP输出中的第一行)时,运行在我的帐户上(IIS中使用的相同帐户),一切正常工作,我得到链接克隆的信息。如您所见,浏览器输出报告称PowerCLI命令是未知的。我完全迷路了,有人在这方面有经验吗?
发布于 2017-05-11 15:08:57
VMware PowerCLI安装程序似乎没有将自己正确地添加到用户/机器环境变量中,这些变量用于在PowerShell加载时填充$Env:PSModulePath。存储在这里的路径决定了PowerShell可以在哪里查找模块,还可以帮助cmdlet自动加载。
若要以跨会话持续存在的方式解决此问题,可以运行以下命令:
$Current = [Environment]::GetEnvironmentVariable('PSModulePath','Machine')
$Current += ';C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Modules'
[Environment]::SetEnvironmentVariable('PSModulePath',$Current,'Machine')在系统范围内获取PSModulePath的现有内容,如下所示:

并将VMware PowerCLI模块路径追加到它,最后通过调用SetEnvironmentVariable方法来设置它。
https://stackoverflow.com/questions/43870588
复制相似问题