Windows Server 2008のタスクスケジューラとPowershellスクリプトでURLを呼び出すだけです。スケジュールされたPowershellスクリプトでURLを呼び出す
だから私は、次のスクリプトを開発:
$url = "http://example.com"
$log_file = "${Env:USERPROFILE}\Desktop\Planification.log"
$date = get-date -UFormat "%d/%m/%Y %R"
"$date [INFO] Exécution de $url" >> $log_file
$request = [System.Net.WebRequest]::Create($url)
$response = $request.GetResponse()
$response.Close()
スクリプトは、私はPowerShellのISE、PowerShellコンソールから、またはコマンドでそれを実行したときにどの問題なく動作します。
powershell PATH_TO_MY_SCRIPT.ps1
しかし、スケジューラタスクから実行すると機能しません。コード0xFFFD0000を返します。私はこれを見つけた:http://www.briantist.com/errors/scheduled-task-powershell-0xfffd0000/ それは許可の問題になる可能性があるので、私は多くの他のプロファイルとオプション( "すべての権限で実行する"を含む)を試して、成功せずに試しました。
ネットワークドライブをマウントして2つのファイルをコピーする別のPowershellスクリプトも実行しますが、このスクリプトで問題はありません。だから私は、この問題は.NETオブジェクトを使ってURLを呼び出すことから来ていると思います。
他のコマンドより前にスクリプトにモジュールを含める必要があるかもしれないが、私は自分がしなければならないことを正確には知らない。 (私はPowershellを知らない、私は問題を解決するためにそれを使用しようとしている)。
ありがとうございました。
「USERPROFILE」ディレクトリへのアクセスが問題である可能性が高いと思います。外部URLの場合は、プロキシ設定(またはその不足)に関する問題でもあります。スケジュールされたタスクはどのユーザーアカウントで実行されますか? – alroc
'USERPROFILE'の部分で@alrocともっと同意できません。手動で(またはインタラクティブに)実行すると、システムにログインしている誰でもセッションを開くことができます(たとえば、 "Peter"としてログインすると "Peter"のプロフィールが得られます)。スケジュールタスクを実行すると、デフォルトでは '$ {Env:USERPROFILE} \ Desktop \ Planification.log'が意味をなさない" SYSTEM "のプロファイルになります。しかし、「SYSTEM」アカウントは変更することができます。「スケジュールされたタスク」コントロールパネルで右クリックしてプロパティを表示すると、タスクを実行するユーザーアカウントを変更することができます。 – Peter