使用 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
这可用于从您的远程交换服务器导入 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
上的信息
因此尝试 运行 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
这可用于从您的远程交换服务器导入 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
上的信息