使用远程 PowerShell 连接到 Exchange 服务器

本文内容
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值