Você não pode executar diretamente um arquivo da Web, mas pode baixar o arquivo primeiro e depois executá-lo. Este one-liner do PowerShell deve fazer isso:
[System.IO.File]::WriteAllBytes("tmpfile.exe", (Invoke-WebRequest "https://example.com/app.exe").Content); Start-Process tmpfile.exe
Isso deixará para trás um programa tmpfile.exe
no diretório atual. Em vez disso, deixe-o no diretório Temp (onde, esperamos, será limpo em breve):
$tmpPath = [System.IO.Path]::GetTempFileName() + ".exe"; [System.IO.File]::WriteAllBytes($tmpPath, (Invoke-WebRequest "https://example.com/app.exe").Content); Start-Process $tmpPath
Usando estes, você provavelmente poderia montar um script para baixar e executar um EXE de um URL arbitrário. Você pode invocar um comando do PowerShell em um prompt de comando ou arquivo de lote normal, colocando powershell -command
antes dele:
@echo off
rem Downloads and runs an EXE from a URL.
powershell -command $tmpPath = [System.IO.Path]::GetTempFileName() + '.exe'; [System.IO.File]::WriteAllBytes($tmpPath, (Invoke-WebRequest "%*").Content); Start-Process $tmpPath