我有麻烦运行有效的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] => )
我找到了修复。
尝试:
从源中复制名为MSOnline
和MSOnline Extended
的文件夹
C:\ WINDOWS \ SYSTEM32 \ WindowsPowerShell \ V1.0 \模块\
到文件夹
C:\ WINDOWS \ Syswow64资料\ WindowsPowerShell \ V1.0 \模块\
然后在PS中运行Import-modulee MSOnline,它会自动获取模块:D