首页 文章

获取当前的ScheduledJob名称

提问于
浏览
1

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

例如 .

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 \ config \ systemprofile \ AppData \ Local \ Microsoft \ Windows \ PowerShell \ ScheduledJobs'); $ jobDef.Run()“

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

谢谢

1 回答

  • 1

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

    我找到了一个解决方法:

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

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

相关问题