小编sim*_*ers的帖子

无法通过任务计划程序恢复工作流程

在PowerShell窗口中,我运行以下工作流程:

workflow foo { Suspend-Workflow; "hello world" | Out-File c:\users\weijgerss\desktop\foo.txt }
Run Code Online (Sandbox Code Playgroud)

然后,为了恢复工作流程,我通过触发在启动时运行的任务调度程序进行了以下调度:

Import-Module PSWorkflow
$jobs = Get-Job -state Suspended
$jobs > c:\users\weijgerss\desktop\zqqfff.txt
$resumedJobs = $jobs | resume-job -wait
$resumedJobs | wait-job

# Task scheduler action: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Normal -NoLogo -NoProfile -Command "&'c:\users\weijgerss\desktop\resume.ps1'"
Run Code Online (Sandbox Code Playgroud)

工作流程既不会在启动时恢复,也不会通过任务计划程序手动触发它.zqqfff.txt的内容表明任务调度程序激活的PowerShell无法查看工作流.当我运行Get-Job时,常规的PowerShell窗口可以看到工作流程.

(正常的PowerShell窗口和任务调度程序powershell实例都以同一用户身份运行.)

我使用procmon看看发生了什么,我可以从中看到,当powershell正常与taskscheduler时,它正在查看不同的工作流持久性路径,即:

C:\ Users\weijgerss\AppData\Local\microsoft\windows\PowerShell\WF\PS\default\S-1-5-21-3519956147-933941082-741972881-500_EL(正常的PowerShell窗口使用此文件夹)C:\ Users\weijgerss\AppData\Local\microsoft\windows\PowerShell\WF\PS\default\S-1-5-21-3519956147-933941082-741972881-500_EL_NI(任务调度程序激活的powershell实例使用此文件夹)

我完全难过了.如何让任务调度程序激活PowerShell实例以查看与普通PowerShell窗口相同的工作流程?

powershell powershell-workflow

4
推荐指数
1
解决办法
4014
查看次数

标签 统计

powershell ×1

powershell-workflow ×1