2013-04-10 3 views
1

У меня проблемы с запущенным действующим сценарием powershell (проверено с cmd). Я хочу, чтобы скрипт тестировался, если пользователь существует в офисе 365, но аутентификация просто не проходит через php, пока он выполняет нормальный режим в cmd.Проблемы с сценарием сценариев powershell с php exec

Сервер - это окна 2008 R2, IIS 7.5, PHP 5.4 NTS.

Я вообще пользователь linux, и у меня возникают проблемы с тем, чтобы эта работа MS работала много времени, поэтому любое предложение действительно ценится.

вот мой сценарий PowerShell:

$username = "[email protected]_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 [email protected]_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] => 
) 

ответ

1

Я нашел исправить.

попробовать:

Скопируйте папки под названием MSOnline и MSOnline Extended от источника

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \

в папку

C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ Modules \

А потом в PS запустить Import-Module MSOnline, и он автоматически получит модуль: D

Смежные вопросы