1

有効なpowershellスクリプト(cmdからテスト済み)の実行に問題があります。ユーザーがOffice 365に存在するかどうかをスクリプトでテストしたいのですが、cmdで正常に実行されている間、認証はphpを介して渡されません。

サーバーは Windows 2008 R2、IIS 7.5、PHP 5.4 NTS です。

私は一般的にLinuxユーザーであり、このMSをうまく機能させるのに苦労しているので、どんな提案も本当に感謝しています。

これが私の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] => 
)
4

1 に答える 1

1

私は修正を見つけました。

試す:

ソースから呼び出さMSOnlineれたフォルダをコピーしますMSOnline Extended

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

フォルダへ

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

次に、PS で Import-Module MSOnline を実行すると、モジュールが自動的に取得されます:D

于 2013-09-10T00:35:12.930 に答える