在powershell脚本中下载文件

时间:2016-04-02 20:06:31

标签: javascript powershell https download

我正在尝试找到一种在PowerShell脚本中下载文件的方法。从网站方面我可以看到URL为:

https://website.com/admin/listCC.cfm?reportCode=105&clientId=11111&beginDate=04/01/2016 00:00&endDate=04/01/2016 23:59&download

单击IE中的链接将提供保存,另存为或打开提示,它是TXT文件。我尝试过使用webclient代码以及invoke-webrequest,但输出总是这样:

    <html>
    <head>
        <title> Session Timed Out</title>

    <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
    <!--
    function sessionDone(){
        alert('Your session has expired.  Please login again.');
        window.location = "/admin/logout.cfm";
        }
    //-->
    </SCRIPT>


    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="cache-control" content="no-store" /> 
    <meta http-equiv="Expires" content="-1" />

    </head>
    <body onLoad="sessionDone();">
    </body>
    </html>

非常感谢任何帮助

修改

我明白了。我一定没有使用我正在使用的初始invoke-webrequest代码正确登录。这是我现在正在使用的

$yesterday = (Get-Date).AddDays(-1).ToString('MM/dd/yyyy')
$loginsession=$null
$loginform=$null
$loginpage=$null
$login=$null
$dl_105=$null


$loginpage = Invoke-WebRequest ("https://website.com/loginpage") -SessionVariable loginsession
$loginform=$loginpage.Forms[0]
$loginform.fields["username"] = "username"
$loginform.fields["password"] = "password"

$login = Invoke-WebRequest -Uri ("https://website.com/" + $loginform.Action) -WebSession $loginsession -Method POST -Body $loginform.Fields


$dl_105=Invoke-WebRequest -Uri ("https://website.com/admin/listCC.cfm?reportCode=105&clientId=11111&beginDate=$yesterday 00:00&endDate=$yesterday 23:59&download") -Method GET -ContentType "text/csv" -Body $loginform.Fields -WebSession $loginsession
Out-File -FilePath C:\Users\Administrator\Desktop\test\new_test.txt -InputObject $dl_105.Content -encoding ASCII

sleep 5

我很幸运,我试图获得的下载链接并不完全独特。我正在做的就是在昨天的日期过去获取我需要的文件。

0 个答案:

没有答案