从批处理文件运行 Exchange Powershell 脚本:命令不起作用。我的语法有什么问题?

从批处理文件运行 Exchange Powershell 脚本:命令不起作用。我的语法有什么问题?

来自这个问题:如何为 Exchange Powershell 创建脚本来修改所有共享邮箱的设置?

这是我的 Powershell 脚本(向右滚动即可查看全部):

$Mailboxes = Get-Mailbox -RecipientTypeDetails SharedMailbox

Foreach ($Mailbox in $Mailboxes) { 
    Set-Mailbox $Mailbox -MessageCopyForSentAsEnabled $True -MessageCopyForSendOnBehalfEnabled $True
    }

如果从 Exchange 命令行管理程序窗口启动,它可以自行正常运行。

但我想从批处理文件启动它,因此我找到了以下 Microsoft 页面:https://technet.microsoft.com/en-us/library/bb123798%28v=exchg.150%29.aspx?f=255&MSPPError=-2147217396#RunScript

按照那里的指南,我创建了这个批处理文件(向右滚动查看全部):

PowerShell.exe -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; 'C:\Program Files\Microsoft\Exchange Server\V15\bin\enablesentforshared.ps1'"

我添加了一个说明中未指定的功能,即用单引号括住要运行的脚本的完整路径。如果没有单引号,我会收到C:\Program无法识别的 cmdlet 或脚本的错误。

无论如何,当我运行这个批处理文件时,终端窗口会打开,然后更改为 Powershell 窗口,并且脚本的路径名会打印到屏幕上,但它会在提示之前打印出来[PS],并且实际上不会执行任何操作。

执行批处理文件后,我的 Powershell 窗口如下所示:

VERBOSE: Connecting to exchangeserver.domain.com
VERBOSE: Connected to exchangeserver.domain.com
C:\Program Files\Microsoft\Exchange Server\V15\bin\enablesentforshared.ps1
[PS] C:\Users\Admin.domain>

并且没有迹象表明该脚本已经实际运行。

那么我这里哪里错了?我尝试根据我进行的一些谷歌搜索将 更改.为,但这会给我一个错误,提示无法识别命令,因此我认为更接近正确。&Connect-ExchangeServer.

答案1

试试这个(添加第二个脚本的 dotsourcing):

PowerShell.exe -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; . 'C:\Program Files\Microsoft\Exchange Server\V15\bin\enablesentforshared.ps1'"

答案2

包含发送邮件参数的 Bat 文件脚本。此 bat 文件适用于我的 Windows Server 2016 和 Exchange Server 2016。

PowerShell.exe -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; . C:\Script\Get-ExchangeEnvironmentReport.ps1 -HTMLReport C:\Script\Get-exchangeReport.html -SendMail:$true -MailFrom:[email protected] -MailTo:[email protected] -MailServer:mail.domain.com"

答案3

我在 BAT 文件中执行以下操作:

powershell -psconsolefile "C:\Program Files\Microsoft\Exchange Server\V15\Bin\exshell.psc1" -noexit "&获取邮箱|获取邮箱统计信息" 暂停

相关内容