2016-12-14 3 views
0

다운로드가 트리거 될 때 새 탭을 열고 해당 파일을 저장/열기/닫기 프롬프트가 표시되기 바로 전에 닫는 웹 사이트에서 파일 다운로드를 자동화하는 데 어려움을 겪고 있습니다. 창문. 스크립트 자체는 작업 스케줄러에서 시도 할 때까지 수동으로 시작할 때 잘 작동합니다. 그것은 다운로드에 방해가 될 때까지 잘 실행됩니다. 다운로드해야 할 파일의 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 인 powershell.exe를 실행하도록 설정되어 있습니다. - 시작은 C:\userfolder입니다. 실행 : 사용자가 가장 높은 권한으로 로그인 한 경우에만; Windows Server 2012 R2 용으로 구성되었습니다.

나는 또한 똑같은 결과로 작업 스케줄러에서 배치 파일을 통해 셸 스크립트를 시작하려고했습니다.

미리 알려 주셔서 감사합니다.

답변

0

아마도 작업을 대화 형 모드로 실행해야합니다. 기본적으로 예약 된 작업은 세션 0에서 실행됩니다./IT 매개 변수를 사용하여 대화식 모드의 작업을 예약 할 수 있습니다. 내 정신을 저장에 대한 더 많은 정보를 원하시면

https://msdn.microsoft.com/en-us/library/bb736357(VS.85).aspx

+0

감사합니다 다음 링크를 확인하라!/IT가 그랬어! – Elena