ダウンロードが開始されたときに新しいタブを開き、保存/開く/閉じるのプロンプトがメインに表示される直前にファイルを自動ダウンロードするのに苦労しています窓。タスクスケジューラで試してみるまで、手動で起動するとスクリプト自体がうまく動作します。それはダウンロードに掛かるまでうまくいく。ダウンロードする必要のあるファイルのURLを取得し、PowerShell ISEからうまく動作しますが、タスクスケジューラから起動したときに結果を返さないInvoke-WebRequest
に渡すコードを追加しました。私はdo-whileの内容がまったく実行されているかどうかを調べるためにカウンタとテストファイルの作成をコードに組み込み、10回の試行がすべて記録されました。これは、タスクスケジューラを使用して起動したときに結果を返さないアクティブなURLを検索する部分です。WindowsタスクスケジューラPowershellがURLを取得してファイルをダウンロードする
# >> Keep trying to capture the CSV download link
$i = 1
Do {
$i | Add-Content -Path "C:\userfolder\try.txt"
$urls = (New-Object -ComObject Shell.Application).Windows() |
Where-Object {$_.LocationUrl -like "https://sitename.com/ReportViewer*"} |
Where-Object {$_.LocationUrl}
$reportURL = @($urls)[0].LocationURL
$i ++
}
While ($reportURL -eq $NULL -and $i -le 10)
# >> Send download link to web request and save to file
Invoke-WebRequest -Uri $reportURL -OutFile "C:\userfolder\ProfileList.csv"
私は前にWscript.Shell AppActivate and SendKeys('%S')
を試してみましたが、タスクスケジューラから起動時にPowerShellコンソールウィンドウにフォーカスをhijakcingたので:AppActivateのは、おそらく動作しないでしょう。タスクは、引数:C:\userfolder\CPdownload.ps1 -RunType $true
、および開始:C:\userfolder
でpowershell.exeを実行するように設定されています。実行:ユーザーがログインしていて、特権が最大の場合のみ。 Windows Server 2012 R2用に構成されています。
私はまた、タスクスケジューラからのバッチファイルを使ってシェルスクリプトをまったく同じ結果で起動しようとしました。
ありがとうございます。
感謝を次のリンクをチェックしてください!それ/それがそれでした! – Elena