【问题标题】:Running PowerShell Script on Task Scheduler在任务计划程序上运行 PowerShell 脚本
【发布时间】:2015-07-22 06:59:36
【问题描述】:

我在其他问题中查看了关于任务计划程序答案的所有 PowerShell 脚本,但找不到可以解决此问题的答案。

我尝试使用以下命令直接通过任务调度程序运行 PowerShell 脚本:

       powershell.exe -file c:\path_to_your_script\script.ps1

以及创建批处理来运行 PowerShell 脚本。

PowerShell 脚本在独立运行和手动运行批处理时都能完美运行。

它打开一个excel,刷新它,保存,然后关闭。

我无法通过任务处理程序成功安排此任务。

有什么建议吗?

感谢您的帮助

编辑:

@luke 这是任务计划程序设置的导出

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
<Date>2015-05-11T12:40:51.6084684</Date>
<Author>----------</Author>
  </RegistrationInfo>
  <Triggers>
 <TimeTrigger>
  <Repetition>
    <Interval>PT1H</Interval>
    <StopAtDurationEnd>false</StopAtDurationEnd>
  </Repetition>
  <StartBoundary>2015-05-11T12:30:00</StartBoundary>
  <Enabled>true</Enabled>
</TimeTrigger>
  </Triggers>
  <Principals>
<Principal id="Author">
  <UserId>------\Administrator</UserId>
  <LogonType>Password</LogonType>
  <RunLevel>HighestAvailable</RunLevel>
</Principal>
  </Principals>
  <Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
  <StopOnIdleEnd>true</StopOnIdleEnd>
  <RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>true</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>true</WakeToRun>
<ExecutionTimeLimit>P3D</ExecutionTimeLimit>
<Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
<Exec>
  <Command>C:\Windows\System32\cmd.exe</Command>
  <Arguments>/q /c "C:\Users\---------\Documents\PowerBI\PowerShell\RunExcelRefreshingScriptPowerShell2.bat"</Arguments>
</Exec>
  </Actions>
</Task>

【问题讨论】:

  • 将脚本作为计划任务运行的问题几乎总是与运行任务的帐户的访问权限或该帐户的配置文件差异有关。
  • 在任务计划程序中,这个任务的“上次运行结果”的值是多少?
  • @EBGreen 正在使用本地管理员帐户。谢谢
  • @SamuelProut 你问的是关联ID吗?似乎在历史选项卡下找不到“上次运行结果”。谢谢
  • 听起来像是 DCOM 身份问题。你试过this answer吗?

标签: powershell task


【解决方案1】:

我遇到了同样的问题,我创建了一个计划任务来运行我创建的 PowerShell 脚本。我发现,如果您在 Program/script 窗口中添加 Powershell.exe 的路径(即:%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe)和实际 PowerShell 脚本的路径(即:D :\Scripts\PowershellScript.ps1)(参见下面的示例)在“参数”窗口中它将起作用。您还必须检查服务器的 PowerShell 执行策略以确保将其设置为“无限制”。您也可以尝试将其添加为参数(-ExecutionPolicy Bypass)。 我希望这会对某人有所帮助。 例子: Task to Run PowerShell Scripts

【讨论】:

    【解决方案2】:

    您能否提供不带用户名或密码的任务计划设置的导出。

    我有许多通过任务计划程序运行的 powershell 而不是一个问题,因为我的计划程序调用了启动 powershell 的 bat。

    这是您可以找到上次运行结果的地方。

    【讨论】:

    • 卢克,上次运行的结果是(0x41306),它一直在运行,我不得不结束它。我将在答案中发布设置的导出,因为这里发布太长了。
    • 通过您的导出,我注意到您已将其保存在用户文件夹中,它是否保存在您尝试在其下运行任务的用户的用户文件夹中?我找不到它,但是您是否还检查了“无论用户是否登录都运行”?你也试过在“SYSTEM”下运行它
    • 本地管理员下不保存。但是本地管理员不能访问所有用户及其文件吗?这值得一试。我会让你知道情况如何。谢谢卢克
    • @JoaquinCorrales 是的,管理员可以访问,但需要提升才能进入另一个用户文件夹,我建议在 c:\ 的根目录中创建一个文件夹,以便您的脚本用完。跨度>
    • 该文件夹已被放入根目录,它仍然无限期地运行。谢谢卢克
    猜你喜欢
    • 2015-07-27
    • 2020-08-07
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 2014-12-23
    • 2013-08-22
    • 2019-05-08
    相关资源
    最近更新 更多