iis 保持Exchange Server 2019连接

dphi5xsq  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(133)

Exchange管理新手。
我们的.NET Web应用程序托管在IIS中。我们的应用程序通过PowerShell命令与Exchange Server交互。
我们在Windows Server 2012中使用Exchange Management Shell 2013,目前已迁移到Windows Server 2022和Exchange Management Shell 2019。IIS应用程序池标识具有建立连接的权限。

class ExchangeCmdletHepler 
{

    Runspace m_runspace = null;

    public ExchangeCmdletHepler()
    {
                m_runspace = RunspaceFactory.CreateRunspace();
                m_runspace.Open();
                
                connectToExchange();
    }

    private void connectToExchange()
    {
                Pipeline pipeline = m_runspace.CreatePipeline();
                
                pipeline.Commands.AddScript(". 'C:\Program Files\Microsoft\Exchange Server\V15\Bin\RemoteExchange.ps1'; Connect-ExchangeServer <Exchange Server Here> ");            

                pipeline.Invoke();
    }

    //BAU Functions
    public String getDLGrpCategoryFromAD(String dlName)
     {
            var grpCategoryResp = String.Empty;

            var cmdText = $"Get-ADGroup \"{dlName}\" | Select GroupCategory";
            Command setGrpCmd = new Command(cmdText, true);

            Pipeline pipeline = m_runspace.CreatePipeline();
            pipeline.Commands.Add(setGrpCmd);

            Collection<PSObject> pipeLineResultList = pipeline.Invoke();
            //process pipeLineResultList object;
      }
      
     //Couple of more BAU Functions Goes here.

}

迁移后,我可以连接到新的Exchange Server 2019,没有任何问题。但是,当调用getDLGrpCategoryFromAD()时,它会抛出错误***“The term 'Get-ADGroup' is not recognized as the name of a cmdlet,function,script file,or operable program”***。
在迁移之前,我记得,我曾经从getDLGrpCategoryFromAD()方法获得响应。
我相信,在connectToExchange()作用域之后,连接性不会持久化。从2013年到2019年有什么变化吗?我们的代码基本上是一样的。有人可以在这里分享一些意见/建议。如果我的理解有错,请指正。
谢谢

sigwle7e

sigwle7e1#

最后,我可以解决这个问题,在查看SO post The term 'Get-ADUser' is not recognized as the name of a cmdlet后。新目标计算机中似乎未安装“Active Directory域服务”。

相关问题