【问题标题】:Running a Exchange 2013 script through PowerShell通过 PowerShell 运行 Exchange 2013 脚本
【发布时间】:2016-07-19 20:42:39
【问题描述】:

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

这是脚本:

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

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

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

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

【问题讨论】:

  • 我不确定您为什么要使用“脚本”调用 PowerShell - 这是您配置的 .bat 文件吗?这是有道理的,因此为什么您右键单击,在 PowerShell 中运行,但什么也没有发生(因为没有发送任何参数 - 所有 Connect-ExchangeServer -auto -ClientApplication:ManagementShell 信息都丢失了)。
  • 它最终将用于每晚运行的计划任务。它连接到交换。这部分脚本工作正常: powershell.exe -NonInteractive -noexit -command ". 'E:\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto -ClientApplication:ManagementShell" 第二部分当我尝试运行 .ps1 文件时,脚本的一部分不起作用。如果我复制这两个部分并将它们粘贴到 PowerShell 中,它会调用交换,然后运行另一部分,我会得到想要的结果。
  • 你在RemoteExchange.ps1文件上右击吗?如果是这样,那是您的问题的根本原因。而是右键单击.bat 文件(您没有回答这个问题),然后查看它在运行时是否有效。如果是这样,那就是你的问题。
  • 我的文件名为 Room.ps1。我没有运行 .bat 文件。有没有办法让脚本在 Exchange 加载运行另一部分时等待。
  • 宾果游戏! ;) 所以你是从 Room.ps1 发送参数,当你右键单击 RemoteExchange 时,它​​并没有一路完成,对吧?

标签: powershell exchange-server-2013


【解决方案1】:

这是我在 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

【讨论】:

    猜你喜欢
    • 2013-09-11
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多