我编写了一些脚本来自动化一些用户添加和用户修改功能。但是我无法弄清楚这个难题的最后一个部分。
我需要从本地 powershell 会话在交换服务器上的交换管理 shell 中运行一些命令,例如调用命令脚本块。
这可能吗?
将添加 Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
到我的脚本块的开头来完成这个?
我编写了一些脚本来自动化一些用户添加和用户修改功能。但是我无法弄清楚这个难题的最后一个部分。
我需要从本地 powershell 会话在交换服务器上的交换管理 shell 中运行一些命令,例如调用命令脚本块。
这可能吗?
将添加 Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
到我的脚本块的开头来完成这个?
至于这个……
将添加 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
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/
是的,你可以,一些命令必须在本地运行,下面是一个例子。您可以对 Exchange 执行相同的操作。
调用命令 -ComputerName $srv -ScriptBlock {Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell; 获取引擎更新信息}