2017-01-17 7 views
0

Powershellでは、Register-ScheduledJob -ScriptBlock {...}コマンドを使用してScheduledJobを作成しました。このScheduledJobはScriptBlockを実行します。 ScriptBlockから現在実行中のScheduledJobの名前を取得するにはどうすればよいですか?現在のScheduledJobの名前を取得する

など。

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

Windowsのタスクスケジューラのタスクは、コマンドを実行している:

たpowershell.exe -nologo -NonInteractive -WindowStyle隠し-Command 「インポートモジュールPSScheduledJob; $ jobDef = [マイクロソフト.Windows \ system32 \ config \ systemprofile \ AppData \ Local \ Microsoft \ Windows \ PowerShell \ ScheduledJobs '); $ jobDef.Run() "LoadFromStore(' asdfdsafsdf '、 ' C:¥Windows¥system32¥config¥systemprofile¥AppData¥Local¥Microsoft¥Windows¥PowerShell¥ScheduledJobs '

変数$ jobDefを保存しようとしましたが、空です。

は私がScheduledJobを実行し、すべての変数と環境変数をエクスポートし、ジョブの名前またはIDを見つけられませんでした

+2

$ CurrentScheduledJob.Nameが動作するかもしれません。 $ CurrentScheduledJobがどこから来るのかを示すコードをもっと提供するべきです。 –

+0

$ CurrentScheduledJobは実際には存在しません。申し訳ありませんが明らかでない場合。 – Stolken

答えて

0

ありがとうございます。

私の周りの仕事を見つけました:

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

パラメータを使用すると、あなたのためのソリューションではない、とあなたは絶対に実行時にそれを取得する必要がある場合は、これは機能要求です。 PowerShell user voice

+0

実行時にジョブの名前を調べる必要があるので、私のためには機能しません。ここでそれは "求人登録"で検索されます。 – Stolken

+0

ジョブ登録時には取得されません。求人登録時に設定されています。答えで説明したように、パラメータとして渡さないと実行時にそれを取得する方法はありません。 このソリューションの失敗の詳細については、質問を更新してください。 – TravisEz13

関連する問題