In the world of weird requirements I had a requirement to download some software from a server, the download link contained a "rm" token which was a GUID wich can be seen below with the URL address:
"https://magicalwebsite.a6n.co.uk/download_client_data?fn=null&rm=5cf708e4757ec6ab2ddc97c52eaa9a20&p=winNT-64&ss=511d97152d4610abafbeb2d4f6995af350071ddf%22"
When you visit this URL it would download a file like this, which is a problem as it has weird characters that scripting does not like contained within, these are shown in bold:
bear-honey-w0eec3075w1jey8idix5fz68yy5d1578xzzdz8jcqs0o4ilij18i[o4lz4x![_]4!z^d777c40hc90.exe
Therefore if you tried to download via Powershell you get the error linking to wildcard paths as below:
Invoke-WebRequest : Cannot perform operation because the wildcard path
This means any character in the filename that is not a word character (alphanumeric or underscore), a dot (.), or a hyphen (-) with an underscore (_) this then ensures the script can handle the download.
$url = "https://magicalwebsite.a6n.co.uk/download_client_data?fn=null&rm=5cf708e4757ec6ab2ddc97c52eaa9a20&p=winNT-64&ss=511d97152d4610abafbeb2d4f6995af350071ddf%22"
$outputFolder = "C:\Software-Download"
$response = Invoke-WebRequest -Uri $url -Method Head
$fileName = $response.Headers['Content-Disposition'] -replace '.*filename=',''
$fileName = $fileName -replace '[^\w\.-]', '_' # Replace invalid characters with underscores
$outputFile = Join-Path -Path $outputFolder -ChildPath $fileName
Invoke-WebRequest -Uri $url -OutFile $outputFile