I'm trying to convert a relatively simple bash script to run in Windows. It uses wget to download a file from a site that requires a login name but no password. I have been bashing my head against invoke-webrequest in Powershell for some time.
Working script, lightly obfuscated:
Login and grab the auth cookies & link
wget --save-cookies /tmp/cookie.txt --keep-session-cookies --post-data 'login=myusername' -O /tmp/session.output https://website.com/session
Parse out the link and use the cookies to grab the digest
wget --load-cookies /tmp/cookie.txt -O "/home/user/filename$(date "+%Y-%m-%d").pdf" "https://website.com"
grep -o -E '/my-subscriptions/nnn/([^"#]+)pdf' /tmp/session.output
Clean up
rm /tmp/cookie.txt
rm /tmp/session.output
using namespace System.Net;[CookieContainer]$cookieJar = [CookieContainer]::new();$strURL = 'https://website.com/session';[string]$strResult = "";[HttpWebRequest]$hwRequest = [HttpWebRequest]([WebRequest]::Create($strURL));$hwRequest.CookieContainer = $CookieJar;$hwRequest.KeepAlive = $true;[HttpWebResponse]$hwResponse = [HttpWebResponse]$hwRequest.GetResponse();[StreamReader]$sr = [StreamReader]::new($hwResponse.GetResponseStream());$strResult = $sr.ReadToEnd();$sr.Close();return $strResult;wget --load-cookies /tmp/cookie.txt -O "/tmp/myfile.pdf" "https://website.com`grep -o -E '/my-subscriptions/usn/([^"#]+)pdf' /tmp/session.output`"; I don't think I need the regex since I haven't seen " or # in a filename yet. ...Admins, should this be a separate question now?