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

时间:2016-05-13 17:18:03

标签: powershell exchange-server exchange-management-shell

因此尝试使用PSSession在本地运行Exchange命令行管理程序,但导致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

奇怪的是,如果我使用相同的凭据进入DAG并运行Exchange命令行管理程序,一切正常。

3 个答案:

答案 0 :(得分:1)

这可用于从远程交换服务器导入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作为执行操作的帐户运行,则您甚至不需要指定凭据。

答案 1 :(得分:0)

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

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

Get-Credential on technet

答案 2 :(得分:0)

$ creds =获取凭据

$ sess = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://myserver.mydomain.com/PowerShell/-身份验证Kerberos-凭据$ creds

然后严格与

交换命令

Enter-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上的信息