0

タスクスケジューラの下で実行するスクリプトを取得しようとしています。PowerShell ウィンドウから次のコマンドを問題なく実行できます

powershell.exe -ExecutionPolicy Unrestricted -NonInteractive -NoProfile -File C:\DataProcessing\Scripts\MoveDailyOpra.ps1.

タスクスケジューラの下にタスクを作成し、1日に1回実行するように割り当てました。ただし、タスクが実行されているという証拠はありません。ps1 ファイルはログ ファイルを作成するので、何が起こっているかを確認できますが、ログ ファイルすら作成されていません。

タスクは、正常に実行されたと表示されます。

1) タスク スケジューラが実際に行っていることをデバッグするにはどうすればよいですか 2) タスクに追加する必要があるその他の属性は何ですか。

4

1 に答える 1

0

の新しいアクションの「プログラム/スクリプト」フィールドに次を貼り付けますTask Scheduler。引数に関するポップアップが表示されます。これで [はい] をクリックします。

PowerShell.exe "& 'C:\DataProcessing\Scripts\MoveDailyOpra.ps1'" -ExecutionPolicy Unrestricted -NonInteractive -NoProfile 

これはコマンド文字列を Powershell.exe に渡し、次に Powershell.exe がその文字列を実行し、次に&演算子を使用してスクリプトを呼び出します。コールオペレーターとして知られています。したがって、コール チェーンはTask scheduler>> PowerShell.exe>> あなたの script.ps1 です。

& Call operator - コマンド、スクリプト、またはスクリプト ブロックを実行します。「呼び出し演算子」とも呼ばれる呼び出し演算子を使用すると、変数に格納され、文字列で表されるコマンドを実行できます。呼び出しオペレーターはコマンドを解析しないため、コマンド パラメーターを解釈できません。

それでも問題が解決しない場合は、スクリプト パスが正しいこと、およびタスクを実行しているアカウントにスクリプトにアクセスするための正しいアクセス許可があることを確認してください。

于 2016-04-29T13:15:05.673 に答える