通过PowerShell运行Exchange 2013脚本

时间:2016-07-19 20:42:40

标签: powershell exchange-server-2013

我正在尝试设置一个脚本,以便每晚为Exchange 2013运行计划任务。我创建了一个运行Exchange cmdlet的.ps1,然后运行我想要的脚本。我遇到的问题是PowerShell访问Exchange后脚本没有运行。

这是脚本:

powershell.exe -NonInteractive -noexit -command"。 ' E:\ Microsoft \ Exchange Server \ V15 \ bin \ RemoteExchange.ps1&#39 ;; Connect-ExchangeServer -auto -ClientApplication:ManagementShell"

Set-CalendarProcessing -Identity" Room" -BookingWindowInDays(New-timespan -Start(GET-Date)-End 12/1/16).days

如果我复制脚本并将其粘贴到PowerShell中,它可以工作,但如果我右键单击.ps1文件并选择"在PowerShell中运行"它连接到Exchange但不运行其余部分。

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

以下是我在Powershell脚本中运行Exchange任务时使用的格式。

# Make a Powershell connection to Exchange
. 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto
Set-CalendarProcessing -Identity "Room" -BookingWindowInDays (New-timespan -Start (GET-Date) -End 12/1/16).days

我从一个计划任务中调用此任务,该计划任务在一个帐户下运行,该帐户有权执行我要求它执行的操作。

在任务计划程序中: 在计划任务中的操作下:Start a program
程序/脚本:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 添加参数(可选):.\ScriptIWantToRun.ps1 从(可选)开始:C:\Path\To\Script

我这样做的原因是它对我有用,而且除了Exchange之外我还可以加载其他模块。如果你仍然遇到问题,你可能希望让你的脚本输出文件,看看它是否已经开始,并且可能会得到一些关于它什么步骤它没有做任何事情的信息。

对于可能拥有2010年或2007年的人,以下内容可能会帮助您使用我的上述示例。

(对于 Exchange 2010 ,添加参数(可选):-version 2 .\ScriptIWantToRun.ps1