ASP.Net 核心 2 - Powershell 远程处理仅在 IIS Express 中工作(Kestrel 不起作



我正在尝试将Powershell会话从我的 ASP.Net Core 2应用程序(.NET Framework 4.6.2作为平台(连接到我的Exchange服务器。使用IIS Express(在Visual Studio中调试(时,代码可以完美运行,但是使用Kestrel没有运气。

交易所是相应地设置的。我可以使用 powershell 或将以下代码与 IIS Express 结合使用成功连接。

创建电源外壳连接:

var psOptions = new PSSessionOption()
{
    SkipCACheck = true,
    SkipCNCheck = true,
    SkipRevocationCheck = true
};
WSManConnectionInfo connectionInfo = new WSManConnectionInfo(new Uri("https://" + _server + "/powershell?serializationLevel=Full"),
    "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credentials);
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;
connectionInfo.SetSessionOptions(psOptions);
_runspace = RunspaceFactory.CreateRunspace(connectionInfo);
_runspace.Open();

错误:

Hosting environment: Production
Content root path: path
Now listening on: http://127.0.0.1:12006
Application started. Press Ctrl+C to shut down.
fail: Microsoft.AspNetCore.Server.Kestrel[13]
      Connection id "0HLOGQUBGFLJ1", Request id "0HLOGQUBGFLJ1:00000001": An unhandled exception was thrown by the application.
System.Management.Automation.Remoting.PSRemotingTransportException: Connecting to remote server hostname failed with the following error message : The WinRM client sent a request to an HTTP server and got a response saying the requested HTTP URL was not available. This is usually returned by a HTTP server that does not support the WS-Management protocol. For more information, see the about_Remote_Troubleshooting Help topic.
   at System.Management.Automation.Runspaces.AsyncResult.EndInvoke()

交易所方面有问题。WinRM HTTPS 侦听器丢失。您可以使用命令 winrm e winrm/config/listener 检查侦听器。

PS C:WINDOWSsystem32> winrm e winrm/config/listener
Listener
    Address = *
    Transport = HTTP
    Port = 5985
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = <hidden>

Listener
    Address = *
    Transport = HTTPS
    Port = 5986
    Hostname = <hidden>
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint = <hidden>
    ListeningOn = <hidden>

最新更新