获取当前的 Exchange Server

Get current Exchange Server

我用的是EMS。调用 Get-ExchangeServer 命令时,我正在获取可用 Exchange 服务器的列表。

现在问题:

如何获取当前的 Exchange 服务器(我已经调用 Get-ExchangeServer 命令的服务器)?

任何人都可以建议如何实现它吗?

使用环境变量 $ENV:COMPUTERNAME 检索您正在调用命令的交换服务器的服务器名称。

Invoke-Command -ComputerName Exchange.domain.com `
               -ScriptBlock {Get-ExchangeServer -Identity $ENV:COMPUTERNAME} `
               -Credential (Get-Credential)
  • 简答:

    Get-ExchangeServer | select PSComputerName,OriginatingServer -Unique

  • 解释(长答案):

    命令的输出Get-ExchangeServer,已经有你感兴趣的成员:

PS:\ > Get-ExchangeServer | Get-Member

Name                    MemberType     (my explanation)
----                    ----------     -----------------
.                       .              .
PSComputerName          NoteProperty   It's the current ExchangeServer (the one that actually your command has been executed on)
OriginatingServer       Property       It's the current DomainController (the one that your ExchangeServer has used for the query)
.                       .              .

然后,使用 EMS 或 PSRemoting,它总是 returns 你想要的。但是,如果您的环境中有多个 ExchangeServer,则输出可能包含具有相同值的多行。喜欢 :

PS:\ > Get-ExchangeServer | select PSComputerName,OriginatingServer

PSComputerName OriginatingServer      
-------------- -----------------      
exch-srv2      dc3.contoso.com
exch-srv2      dc3.contoso.com
.              .

这就是为什么您可以在执行 Select 时使用 -unique 来避免输出中的重复行。

PS:\ > Get-ExchangeServer | select PSComputerName,OriginatingServer -Unique

PSComputerName OriginatingServer      
-------------- -----------------      
exch-srv2      dc3.contoso.com