用php exec运行powershell脚本的问题

我有麻烦运行有效的PowerShell脚本(从CMDtesting)。 我想要脚本来testing用户是否存在于办公室365,但身份validation不会通过PHP传递,而是在cmd中执行正常。

服务器是Windows 2008 R2,IIS 7.5,PHP 5.4 NTS。

我在一般的Linux用户,我有麻烦得到这个MS的事情工作大时间,所以任何build议是非常感激的。

这里是我的PowerShell脚本:

$username = "adminuser@my_domain" $password = "password" $secstr = New-Object -TypeName System.Security.SecureString $password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)} $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr Import-Module MSOnline -force Connect-Msolservice -Credential $cred Get-MsolUser -UserPrincipalName student@my_domain 

和PHP部分:

 exec("powershell -Command C:/inetpub/wwwroot/office365/test.ps1 < NUL", $output); echo '<pre>'; print_r ($output); echo '</pre>'; 

输出结果:

 Array ( [0] => Connect-MsolService : Exception of type 'Microsoft.Online.Administration.Automa [1] => tion.MicrosoftOnlineException' was thrown. [2] => At C:\inetpub\wwwroot\office365\test.ps1:8 char:20 [3] => + Connect-Msolservice <<<< -Credential $cred [4] => + CategoryInfo : OperationStopped: (:) [Connect-MsolService], Mic [5] => rosoftOnlineException [6] => + FullyQualifiedErrorId : 0x80070002,Microsoft.Online.Administration.Autom [7] => ation.ConnectMsolService [8] => ) 

我找到了修复。

尝试:

从源中复制名为MSOnlineMSOnline Extended的文件夹

C:\ WINDOWS \ SYSTEM32 \ WindowsPowerShell \ V1.0 \模块\

到文件夹

C:\ WINDOWS \ Syswow64资料\ WindowsPowerShell \ V1.0 \模块\

然后在PS中运行Import-modulee MSOnline,它会自动获取模块:D