获取当前的ScheduledJob名称

时间:2017-01-17 20:31:47

标签: powershell

在Powershell中,我使用Register-ScheduledJob -ScriptBlock {...}命令创建了一个ScheduledJob。此ScheduledJob执行ScriptBlock。如何从ScriptBlock中检索当前正在运行的ScheduledJob的名称?

E.g。

Register-ScheduledJob -ScriptBlock { $CurrentScheduledJob | Out-File -FilePath ScheduledJob.txt}

Windows任务计划程序中的任务正在运行命令:

  

powershell.exe -NoLogo -NonInteractive -WindowStyle Hidden -Command   “Import-Module PSScheduledJob; $ jobDef =   [Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition] :: LoadFromStore( 'asdfdsafsdf',   'C:\ WINDOWS \ system32 \设置\ systemprofile \应用程序数据\本地\微软\的Windows \ PowerShell的\ ScheduledJobs');   $ jobDef.Run()“

我试图保存变量$ jobDef,但它是空的。

谢谢

1 个答案:

答案 0 :(得分:1)

我运行了ScheduledJob并导出了所有变量和环境变量,但未找到作业的名称或ID。

我找到了一个解决方法:

$jobName = 'testName'
Register-ScheduledJob -ScriptBlock { param($name)
         $name | out-file C:\name.txt
    } -name $jobName -ArgumentList @($jobName)

如果使用参数不是您的解决方案,并且您绝对必须在运行时检索它,那么这是一个功能请求。您可以在PowerShell user voice

上提出要求