我正在尝试设置一个脚本,以便每晚为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但不运行其余部分。
非常感谢任何帮助。谢谢。
答案 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
)