0

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

我需要从本地 powershell 会话在交换服务器上的交换管理 shell 中运行一些命令,例如调用命令脚本块。

这可能吗?

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

到我的脚本块的开头来完成这个?

4

2 回答 2

0

至于这个……

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

如果不直接在主机上安装 EMC,您无法在本地执行此操作。

其次,没有真正的理由。您可以使用 PSRemoting 将 Exchange cmdlet 代理到您的主机。cmdlet 仅在会话期间可用

无论您是使用 Exchange on-prem 还是 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/

于 2018-08-20T06:09:37.557 回答
0

是的,你可以,一些命令必须在本地运行,下面是一个例子。您可以对 Exchange 执行相同的操作。

调用命令 -ComputerName $srv -ScriptBlock {Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell; 获取引擎更新信息}

于 2022-01-21T14:36:00.800 回答