web-dev-qa-db-ja.com

タスクスケジューラを使用して実行すると、PowerShellスクリプトがファイルに保存されません。特定の引数を指定する必要がありますか?

一時的なExcelファイルをダウンロードし、その一部を新しいファイルにコピーして、ネットワーク上の特定の場所に保存するスクリプトがあります。

問題は、新しいファイルが作成/保存されないことです。スクリプトをローカルで(cmd.exe、PowerShell、または PowerShell ISE を介して)実行すると、ファイルはローカルまたはネットワークに保存されます。スケジュールを介して、またはタスクスケジューラを介してオンデマンドでスクリプトを実行しようとすると、一時ファイルは作成されますが、最終的なドキュメントは作成または保存されません。私が渡す必要がある特定の議論、または私が間違っている可能性のある何かがありますか?これは私が現在使用しているコマンドです:

    powershell.exe -file C:\path\to\my\powershell\script\thescript.ps1

環境変数、およびスクリプトの位置に関連する他の変数を呼び出すため、「開始」もに設定します。

    C:\path\to\my\powershell\script\

使ってみました

    \\MYSERVER\Path\To\Directory\file.xlsx

ネットワーク上のファイルの場所として( ここで提案されているように )、これも機能しません。

3
EGr

スクリプトは、宛先の場所に対する権限を持っているため、実行時に機能します。デフォルトでは、スケジュールされたタスクはローカルシステムユーザーとして実行されます。

この目的のために、ドメインに新しい専用ユーザーを作成し、このタスクを完了するために必要な権限を正確に付与し(それ以上は不要)、スケジュールされたタスクをそのユーザーとして実行するように構成する必要があります。

2
longneck

PowerShellスクリプトでパラメーターをどのように指定しますか(問題のパーツを含むスニペットを投稿できますか)?通常、double quotesから呼び出す場合は、パラメータの周囲にTask Schedulerが必要です。

スクリプトをPowershell command Promptから呼び出すと機能しますか?

この 質問 は少し役立つかもしれません。まったく同じではありませんが、私はその同様の解決策に賭けます。

ここ は、この問題に役立つ可能性のある別のTechNet記事です。簡単な要約:

Found the answer to this - enclosing my entire arguments in double quotes and then my parameters in single quotes ensured that the correct values were being passed to my parameters.
1