通过 HTTPS 从 powershell 远程连接交换服务器 EMS

connecting exchange server EMS from powershell remoting via HTTPS

我正在尝试解决我们面临的问题。

我们能够通过 winRM HTTP 身份验证从远程计算机与 Exchange Server EMS 脚本通信。

$newSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://test.domain.com/PowerShell/ -Authentication Kerberos -Credential $Credentials    
Import-PSSession $newSession

但是我们必须强制使用 WinRM HTTPS,所以我已经设置了所需的一切,包括证书创建、winRM 设置等。

并且我们能够连接到交换服务器可用的远程机器:

输入-PSSession -ComputerName test.domain.com -Credential $credentials -UseSSL

这行得通。

现在,当我在 New-PSSession/Enter-PSSession 中为 EMS 使用 -UseSSL 时,它不起作用:

$newSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://test.domain.com/PowerShell/ -Credential $Credentials -UseSSL

Error: New-PSSession : Parameter set cannot be resolved using the specified named parameters.

请注意:我需要通过 HTTPS 的 WinRM (powershell) 连接:-UseSSL 身份验证。不适用于 Kerberos/Defaut/CredSSP

您需要查看文档中的参数集 https://technet.microsoft.com/en-us/library/hh849717.aspx 例如当您使用 URI 时

Parameter Set: Uri New-PSSession [-ConnectionUri] [-AllowRedirection] [-Authentication {Default | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos} ] [-CertificateThumbprint ] [-ConfigurationName ] [-Credential ] [-EnableNetworkAccess] [-Name ] [-SessionOption ] [-ThrottleLimit ] [ ]

您应该做的是指定 https 前缀而不是使用 -useSSL 开关,这将确保连接是通过 https ("https://test.domain.com/PowerShell/);。-useSSL 是为了在您使用时使用使用 -ComputerName 参数。