我已经编写了一些脚本来自动化一些用户添加和用户修改功能。但是我无法弄清楚这个难题的最后一部分。
我需要从本地Powershell会话在交换服务器上的交换管理Shell中运行一些命令,例如invoke-command脚本块。
这可能吗?
将添加Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
在我的脚本块的开头完成此操作吗?
答案 0 :(得分:1)
至此...
将添加Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
如果不直接在主机上安装EMC,则无法进行本机操作。
第二,没有真正的理由。您可以使用PSRemoting将Exchange cmdlet代理到您的主机。这些cmdlet仅在会话期间可用
尽管您使用的是本地Exchange还是Exchange Online,但此过程相同,尽管Exchange Online指向O365 URI。
已通过MS提供的文档在多个地方对此进行了记录,如下所示:
使用远程PowerShell连接到Exchange服务器
连接到远程Exchange服务器
1。在本地计算机上,打开Windows PowerShell,然后运行以下命令:
$UserCredential = Get-Credential
在打开的“ Windows PowerShell凭据请求”对话框中,输入用户主体名称(UPN)(例如chris@contoso.com)和密码,然后单击“确定”。
2。替换为Exchange服务器的标准域名(例如,mailbox01.contoso.com),然后运行以下命令:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<ServerFQDN>/PowerShell/ -Authentication Kerberos -Credential $UserCredential
注意:ConnectionUri
的值为http,而不是https。
3。运行以下命令:
Import-PSSession $Session -DisableNameChecking
Exchange 2013中的远程PowerShell
1。在本地计算机上,打开Windows PowerShell并执行以下命令:
$UserCredential = Get-Credential
2。输入执行上述命令时提示的凭据后,执行以下操作:
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<FQDN of Exchange 2013 Client Access server>/PowerShell/ -Authentication Kerberos -Credential $UserCredential
3。最后,使用以下命令导入上面建立的会话:
Import-PSSession $Session
https://blogs.technet.microsoft.com/nathanscott/2015/06/14/remote-powershell-in-exchange-2013/