Powershell 获取当前Exchange服务器

Powershell 获取当前Exchange服务器,powershell,exchange-server,Powershell,Exchange Server,我在用EMS。调用获取ExchangeServer命令时,我将获取可用Exchange服务器的列表 现在的问题是: 如何获取当前Exchange服务器(我已在其上调用了获取ExchangeServer命令的服务器) 有人可以建议如何实现它吗?使用环境变量$ENV:COMPUTERNAME检索正在调用命令的exchange服务器的服务器名称 Invoke-Command -ComputerName Exchange.domain.com ` -ScriptBlock

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

现在的问题是:

如何获取当前Exchange服务器(我已在其上调用了获取ExchangeServer命令的服务器)


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

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

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

    获取ExchangeServer |选择PSComputerName,原始服务器-唯一

  • 解释(长答覆):

    命令
    Get-ExchangeServer
    的输出已包含您感兴趣的成员:

然后,使用EMS或PSRemoting,它总是返回您想要的内容。但是,如果您的环境中有多个ExchangeServer,则输出可能包括具有相同值的多行。比如:

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

PSComputerName OriginatingServer      
-------------- -----------------      
exch-srv2      dc3.contoso.com
exch-srv2      dc3.contoso.com
.              .
这就是为什么在执行
选择时可以使用
-unique
,以避免输出中出现重复行

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

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

是的,我以前考虑过使用
$ENV:COMPUTERNAME
,但我是在远程PS会话中使用的,在本例中,它会返回我的本地计算机名。但您为我指明了正确的方向(即使用
Invoke命令
获取远程Exchange服务器上
$ENV:COMPUTERNAME
的值,然后在调用
获取Exchange服务器
时使用它)。非常感谢您的帮助:)
PS:\ > Get-ExchangeServer | select PSComputerName,OriginatingServer -Unique

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