本文内容
1. 在开始之前,您需要知道什么?
2. 连接到远程 Exchange 服务器
3. 您如何知道这有效?
4. 另请参见
如果本地计算机上未安装 Exchange 管理工具,则可以使用 Windows PowerShell 创建到 Exchange 服务器的远程 PowerShell 会话。这是一个简单的三步过程,您输入凭据,提供所需的连接设置,然后将 Exchange cmdlet 导入到本地 Windows PowerShell 会话中,以便您可以使用它们。
注意
• 建议您在用于广泛管理 Exchange 服务器的任何计算机上使用 Exchange 命令行管理程序。您可以通过安装 Exchange 管理工具获得 Exchange 命令行管理程序。有关详细信息,请参阅安装 Exchange 服务器管理工具和打开 Exchange 命令行管理程序。有关 Exchange 命令行管理程序的详细信息,请参阅 Exchange Server PowerShell(Exchange 命令行管理程序)。
• Get-ExchangeCertificate cmdlet 不完全支持远程 PowerShell。我们建议您改用 Exchange 命令行管理程序来获取此 cmdlet 的所有属性。
在开始之前,您需要知道什么?
• 估计完成时间:少于 5 分钟
• 连接后,你有权访问或无权访问的 cmdlet 和参数由基于角色的访问控制 (RBAC) 控制。有关详细信息,请参阅 Exchange 服务器权限。
• 您可以使用以下版本的 Windows:
• 视窗 11
• 视窗 10
• Windows 8.1
• 视窗服务器 2019
• 视窗服务器 2016
• Windows Server 2012 或 Windows Server 2012 R2
• Windows 7 Service Pack 1 (SP1)*
• 视窗服务器 2008 R2 SP1*
*此版本的 Windows 已终止支持,现在仅在 Azure 虚拟机中受支持。若要使用此版本的 Windows,您需要安装 Microsoft .NET Framework 4.5 或更高版本,然后安装 Windows 管理框架的更新版本:3.0、4.0 或 5.1(仅一个)。有关详细信息,请参阅安装 .NET Framework、Windows Management Framework 3.0、Windows Management Framework 4.0 和 Windows Management Framework 5.1。
• Windows PowerShell 需要配置为运行脚本,默认情况下,它不是。当您尝试连接时,您将收到以下错误:
无法加载文件,因为在此系统上禁用了正在运行的脚本。提供用于对文件进行签名的有效证书。
若要要求从 Internet 下载的所有 PowerShell 脚本都由受信任的发布者签名,请在提升的 Windows PowerShell 窗口(通过选择“以管理员身份运行”打开的 Windows PowerShell 窗口)中运行以下命令:
PowerShell复制
Set-ExecutionPolicyRemoteSigned
有关执行策略的详细信息,请参阅关于执行策略。
提示
有问题吗?在 Exchange Server 论坛中寻求帮助。
连接到远程 Exchange 服务器
1. 在本地计算机上,打开 Windows PowerShell,然后运行以下命令:
PowerShell复制
$UserCredential= Get-Credential
在打开的“Windows PowerShell 凭据请求”对话框中,输入用户主体名称 (UPN)(例如)和密码,然后单击“确定”。chris@contoso.com
2. 替换为 Exchange 服务器的完全限定域名(例如),然后运行以下命令:<ServerFQDN>mailbox01.contoso.com
PowerShell复制
$Session= New-PSSession -ConfigurationNameMicrosoft.Exchange -ConnectionUrihttp://<ServerFQDN>/PowerShell/ -AuthenticationKerberos -Credential$UserCredential
注意: ConnectionUri 的值为 ,而不是 。httphttps
3. 运行以下命令:
PowerShell复制
Import-PSSession$Session -DisableNameChecking
注意
请务必在完成后断开远程 PowerShell 会话的连接。如果在不断开会话的情况下关闭 Windows PowerShell 窗口,则可能会用完所有可用的远程 PowerShell 会话,并且需要等待会话过期。若要断开远程 PowerShell 会话,请运行以下命令:
PowerShell复制
Remove-PSSession$Session
您如何知道这有效?
在步骤 3 之后,Exchange cmdlet 将导入到本地 Windows PowerShell 会话中,并由进度条进行跟踪。如果未收到任何错误,则表示您已成功连接。快速测试是运行 Exchange cmdlet(例如,获取邮箱)并查看结果。
如果收到错误,请检查以下要求:
• 一个常见的问题是密码不正确。再次运行这三个步骤,并密切关注您在步骤 1 中输入的用户名和密码。
• 需要为用于连接到 Exchange 服务器的帐户启用远程 PowerShell 访问。有关详细信息,请参阅控制 PowerShell 对 Exchange 服务器的远程访问。
• 需要在本地计算机和 Exchange 服务器之间打开 TCP 端口 80 通信。它可能是开放的,但如果你的组织具有限制性的网络访问策略,则需要考虑这一点。
另请参见
本文中使用的 cmdlet 是 Windows PowerShell cmdlet。有关这些 cmdlet 的详细信息,请参阅以下文章。
• 获取凭据
• 新品
• Import-PSSession
• 删除-PSSession
• Set-ExecutionPolicy
应用脚本实例
$User = "Server\Username"
$PWord = ConvertTo-SecureString -String "Password" -AsPlainText -Force
$UserCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
#$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<Server>/PowerShell/ -Authentication Kerberos -Credential $UserCredential
Import-PSSession $Session -DisableNameChecking -AllowClobber
#$users=Import-Csv -Path .\xxx.csv
$users=Get-Content .\xxx.txt
foreach($user in $users)
{
<#自定义的执行代码脚本写在这里#>
}
Get-PSSession|Remove-PSSession