【问题标题】:Running Windows Powershell script always from task scheduler始终从任务计划程序运行 Windows Powershell 脚本
【发布时间】:2019-05-08 09:55:09
【问题描述】:

这可能是一个非常基本的问题。我在 windows powershell 中有 FileWatcher 脚本,我想 always 运行它,以便它不断监视文件的特定位置。当我从 Windows Powershell IDE 运行它时,它运行得非常好。我知道我可以为此在 Windows 任务调度程序中安排一个任务,但发生的事情是该任务运行然后返回“就绪”状态。这是行不通的。我认为它应该始终处于“运行”状态。我可能会遗漏一些东西。请帮助您提出宝贵的建议。

【问题讨论】:

  • 如果它应该一直运行,你应该用它做一个服务。不是计划任务。
  • 我该怎么做...例如我想创建一个服务来运行一个 powershell 脚本。
  • 我想FileWatcher.ps1 脚本使用Register-ObjectEvent?那么事件、事件订阅和事件队列仅存在于当前会话中。如果关闭当前会话,则丢弃事件队列并取消事件订阅。使用 -NoExit(类似于powershell.exe -NoLogo -NonInteractive -WindowStyle Hidden -NoExit -File 'full\path\to\FileWatcher.ps1')在用户登录启动时运行脚本。

标签: powershell taskscheduler


【解决方案1】:

您可以使用 TaskSchedule...

Running PowerShell scripts as a “service” (Events: Prologue)

但这也是永久事件订阅的用途或根据 user10675448 的建议设置,使其成为真正的服务。

How to run a PowerShell script as a Windows service

Windows PowerShell - Writing Windows Services in PowerShell

本文介绍了这项努力的最终结果:新颖而简单 创建 Windows 服务的方法,通过在 Windows 中编写它们 PowerShell 脚本语言。无需编译,只需快速 可以在任何系统上完成的编辑/测试周期,而不仅仅是 开发者自己的。

还有这个办法……

PowerShell and Events: Permanent WMI Event Subscriptions

与临时事件不同,永久事件是持久对象 这将持续到重新启动并继续运行,直到它 已从 WMI 存储库中删除。

有多种方法可以设置 WMI 事件,我将 在本文中涵盖了其中的 3 种方式(当它们处理 PowerShell 时) 文章。

【讨论】:

    猜你喜欢
    • 2020-08-07
    • 1970-01-01
    • 2013-08-22
    • 2020-07-13
    • 2019-10-31
    • 2015-07-22
    • 2015-07-27
    • 1970-01-01
    • 2017-08-22
    相关资源
    最近更新 更多