来自这里的这个问题:如何为 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>
并且没有迹象表明该脚本已实际运行。
那么我在这里做错了什么?我尝试根据我所做的一些谷歌搜索将其更改.
为 a ,但这给了我一个关于成为无法识别的命令的错误,所以我认为它更接近正确。&
Connect-ExchangeServer
.
试试这个(添加了第二个脚本的点源):
Bat 文件脚本,包括发送邮件参数。这个bat文件在我的window server 2016和exchange server 2016上工作。
我在 BAT 文件中执行此操作:
powershell -psconsolefile "C:\Program Files\Microsoft\Exchange Server\V15\Bin\exshell.psc1" -noexit "& Get-Mailbox | Get-MailboxStatistics" 暂停