如何从标准PowerShell(非EMS)中查找Exchange服务器名称?

如何从标准PowerShell(非EMS)中查找Exchange服务器名称?,powershell,exchange-server,Powershell,Exchange Server,假设我想从PowerShell中检查一些用户邮箱属性。我可以在Exchange命令行管理程序中运行该脚本,但问题是我不能保证最终用户将直接在Exchange或带有任何Exchange工具的计算机上运行该脚本。因此,我可以告诉最终用户只需在PowerShell(而不是EMS)中运行脚本,并将psseion编码到脚本中 但是,我的主要问题来了,我无法将服务器名称硬编码到脚本中(它将在许多不同的环境中使用),我希望避免要求最终用户为psseion提供Exchange服务器名称 是否有任何方法可以仅使用

假设我想从PowerShell中检查一些用户邮箱属性。我可以在Exchange命令行管理程序中运行该脚本,但问题是我不能保证最终用户将直接在Exchange或带有任何Exchange工具的计算机上运行该脚本。因此,我可以告诉最终用户只需在PowerShell(而不是EMS)中运行脚本,并将psseion编码到脚本中

但是,我的主要问题来了,我无法将服务器名称硬编码到脚本中(它将在许多不同的环境中使用),我希望避免要求最终用户为psseion提供Exchange服务器名称


是否有任何方法可以仅使用香草PowerShell(无EMS等)自动获取Exchange服务器名称?脚本将由具有域管理员权限的用户运行,如果有帮助的话,很可能计算机上没有Outlook(因此没有MAPI配置文件配置)。

我不确定这是否具有可移植性(它在我的E2K7设置中工作,但您的里程数可能会有所不同)

通过执行以下操作,可以在AD中查找exchange服务器列表:

$exchangeServers = [ADSI]"LDAP://contoso.com/CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=contoso,DC=com"
$exchangeServers.Member

在我的环境中,这列出了所有exchange server计算机帐户,以及一些其他组,但这只是一个起点。

您正在运行哪个版本的Exchage,机器上有哪个版本的Powershell?理想情况下,它可以在2003年至2013年的任何exchange server版本上运行。让我们假设至少会使用PowerShell的2.0版。那么,恐怕您可能运气不好。我认为您找不到任何人知道如何查找Exchange 2003服务器以从中导入PSesson。没有Outlook,没有Exchange。。。这很难。好吧,如果有办法与所有交易所合作,但2003年除外,我很乐意听到。