使用 PSSession 和 Microsoft.Exchange.Management.PowerShell.SnapIn 时出错

Error when using PSSession and Microsoft.Exchange.Management.PowerShell.SnapIn

因此尝试 运行 Exchange 管理 Shell 在本地使用 PSSession,但出现 AD 操作失败。

这是我的步骤

1)以管理员身份打开 PSmodule

2)

Enter-PSSession -ComputerName DAG01 -Credential domain\user 

3)

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn

4)

Search-Mailbox user -SearchQuery Subject:"anything" -EstimateResultOnly

这是我收到错误的地方。 ->

Active Directory operation failed on . The supplied credential for 'domain\user' is invalid.
+ CategoryInfo          : NotSpecified: (:) [], ADInvalidCredentialException
+ FullyQualifiedErrorId : [Server=CHGDAG01,RequestId=4f848ef8-264c-4db7-a4e8-2acf2dae560f,TimeStamp=5/13/2016 4:45

:55 PM] [FailureCategory=Cmdlet-ADInvalidCredentialException] 5533B753

奇怪的是,如果我使用相同的凭据通过 RDP 进入 DAG 和 运行 Exchange 管理 Shell,一切正常。

您需要将 pscredential 对象传递给 -Credential 参数。

您可以使用 $cred = Get-Credential 然后 -Credential $cred

Get-Credential on technet

这可用于从您的远程交换服务器导入 PSSession。

$Params = @{
    ConfigurationName = 'Microsoft.Exchange'
    ConnectionUri = "http://youexchangeserver.server.com/PowerShell/"
    Credential = ( Get-Credential )
    Authentication = 'Kerberos'
    Name = 'ExchangeSession'
}
Import-PSSession -Session ( New-PSSession @Params )

但是,我不明白你的工作原理,所以我会试试这个:

$Credential = Get-Credential
Enter-PSSession -ComputerName DAG01 -Credential $Credential
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn

我会注意到,如果您使用 运行 PowerShell 作为执行操作的帐户,您甚至不需要指定凭据。

$creds = 获取凭据

$sess = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://myserver.mydomain.com/PowerShell/ -Authentication Kerberos -Credential $creds

然后与

严格交换命令

输入-PSSession $sess

获取邮箱 xyz

退出

或者用

做一些 PowerShell + Exchange 的东西

导入 PSSession $sess

获取邮箱 xyz

.\DoSomthing.PS1

删除-PSSession $sess

这是来自 https://docs.microsoft.com/en-us/powershell/exchange/exchange-server/connect-to-exchange-servers-using-remote-powershell?view=exchange-ps

上的信息