从PHP脚本调用PS脚本时显示获取凭据框

从PHP脚本调用PS脚本时显示获取凭据框,php,powershell,iis,Php,Powershell,Iis,我的php脚本: $pscommand = "powershell -ExecutionPolicy Bypass -Command .\script.ps1 -upn $upn"; $output = shell_exec ($pscommand); echo "<br>$output"; 但用于键入凭证的弹出窗口未显示。 错误消息是(谷歌从德语翻译): “如果应用程序未在UserInteractive模式下运行,则显示模式对话框或表单是无效的操作。请指定ServiceNotif

我的php脚本:

$pscommand = "powershell -ExecutionPolicy Bypass -Command .\script.ps1 -upn $upn";
$output = shell_exec ($pscommand);
echo "<br>$output";
但用于键入凭证的弹出窗口未显示。 错误消息是(谷歌从德语翻译):

“如果应用程序未在UserInteractive模式下运行,则显示模式对话框或表单是无效的操作。请指定ServiceNotification或DefaultDesktopOnly格式以查看服务应用程序通知。”

我怎样才能解决这个问题?这是PS、php还是IIS问题


提前感谢。

您目前如何从php调用它?刚刚启动一个子进程?基本事实是,您将看不到会话0中的任何对话框。我认为您需要以安全的方式将变量传递给powershell,以创建可在powershell脚本中使用的。也许您甚至可以直接创建一个凭证对象并将其传递给powershell部分,但我对PHP了解不多…。。@MathiasR.Jessen抱歉,我喜欢您这样做mean@mchief29请使用代码,注释:)您当前如何从php调用它?刚刚启动一个子进程?基本事实是,您将看不到会话0中的任何对话框。我认为您需要以安全的方式将变量传递给powershell,以创建可在powershell脚本中使用的。也许您甚至可以直接创建一个凭证对象并将其传递给powershell部分,但我对PHP了解不多…。。@MathiasR.Jessen抱歉,我喜欢您这样做mean@mchief29请输入代码,注释如下:)
try{
    $credential = Get-Credential
    Import-Module MSOnline
    Connect-MsolService -Credential $credential -ErrorAction Stop -verbose
}