在交换管理外壳程序中使用invoke-command脚本块

时间:2018-08-20 00:27:13

标签: powershell exchange-server exchange-management-shell

我已经编写了一些脚本来自动化一些用户添加和用户修改功能。但是我无法弄清楚这个难题的最后一部分。

我需要从本地Powershell会话在交换服务器上的交换管理Shell中运行一些命令,例如invoke-command脚本块。

这可能吗?

将添加Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn

在我的脚本块的开头完成此操作吗?

1 个答案:

答案 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

https://docs.microsoft.com/en-us/powershell/exchange/exchange-server/connect-to-exchange-servers-using-remote-powershell?view=exchange-ps

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/