我将以下 PowerShell 脚本另存为 test.ps1:
# test script
Write-Output "z" >> C:\path\to\log.txt
在任务计划中,我将其设置为“无论用户是否登录都运行”。
触发器是“一次”,但我有“每次重复任务: ”选中并设置为“ 5 分钟”。
在“操作”选项卡中,我有一个操作 -“启动程序”设置为“ powershell.exe ”,“添加参数(可选) ”设置为“ -file c:\path\to\test.ps1 ”和“开始于(可选) " 设置为 " c:\path\to "。
在“历史记录”选项卡中,我看到:
任务计划程序在任务“\test”的实例“{a1485114-69fe-4aa8-95ee-27d8f260591a}”中启动了操作“powershell.exe”。
所以它看起来对我有用,但 log.txt 既没有被创建也没有被添加到。
有任何想法吗?
任务计划程序 PowerShell 脚本未运行
根据您的描述,您可以进行一些小的调整,并检查一些其他容易忽略的设置,这些设置有时会导致同样的问题。
在Action选项卡中,您将创建一个Action,定义为:
Start a program
Powershell
-ExecutionPolicy Bypass -File "c:\path\to\test.ps1"
C:\Windows\System32\WindowsPowerShell\v1.0
此外,在您的情况下,其中一些选项也可能会有所帮助,我不是 100% 需要它们,但很容易测试。
从计划任务的常规选项卡中,确保无论用户是否登录都运行和以最高权限运行选项都被选中。
非常重要的是,请确保Start time是您希望进程第一次运行但早于某个日期的确切时间,然后它将仅在该时间开始首先运行。
如果出现问题,还可以考虑使用
Write-Output "z" | Out-File "C:\path\to\log.txt"
带或不带-Append
参数将输出重定向到文件。最后,从设置选项卡中,您也可以在错过预定开始后尽快取消选中运行任务,因为这也可能导致此问题。之前的日期,然后它会首先从那个时间开始运行。
进一步的故障排除
由于您使用的是无论用户是否登录都运行选项,因此您可以使用运行此作业的凭据登录系统,并在提示时使用该选项。
登录后打开 cmd 然后运行
PowerShell.exe -ExecutionPolicy Bypass -File "c:\path\to\test.ps1"
并查看您从那里得到的可能需要解决的结果或错误,例如帐户没有对 ps1 脚本的执行访问权限等。其他资源