Powershell: Installeren software

Ik heb een script gemaakt (dank aan DuckDuckGo) voor het automatisch installeren en downloaden van software. Vaak wordt de laatste versie gedownload. Niet overal omdat hier geen directe link voor is. Check daarom bij VLC elke maand of er een nieuwere versie is.

Uitleg Invoke-WebRequest

Het commando ‘Invoke-WebRequest’ kan je vergelijken met wget. Dit commando download wat jij aangeeft. Achter -Uri zet je de link en bij -Outfile geef je aan waar het bestand opgeslagen moet worden.

Uitleg Start-Process

Nadat met Invoke-WebRequest het bestand gedownload is moet de download uitgevoerd worden. Dit doen we door een proces te start met ‘Start-Process’. De siwtch -Filepath verwijst naar de installatie. Met -Argumentlist geef je de installatie commando’s. In mijn script zie je vaak /S of /Silent staan. Dit is voor een stille achtergrond installatie. -Verb RunAs zorgt er voor dat de installer wordt uitgevoerd als de huidige gebruiker. Heb je geen admin rechten? Dan wordt er gevraagd om in te loggen. En de laaste: -Wait zorgt er voor dat powershell wacht tot het gestarte process klaar is. Zodat niet alle drie de installers tegelijk gaan draaien. Dit kan voor issues zorgen.

# Instellingen Algemeen
$Path = $env:TEMP

# Instellingen Firefox
$FireFoxURL = "https://download.mozilla.org/?product=firefox-latest&os=win64&lang=en-US"
$FireFoxInstall = "firefox.exe"

# Instellingen Chrome
$ChromeURL = "http://dl.google.com/chrome/install/375.126/chrome_installer.exe"
$ChromeInstall = "chrome_installer.exe"

#Instellingen VLC
$VLCURL = "https://mirror.nl.leaseweb.net/videolan/vlc/3.0.6/win64/vlc-3.0.6-win64.exe" 
$VLCInstall = "vlc_installer.exe" 

#################################################
# Download en installeer laatste Firefox versie #
#################################################
Write-Host "Downloaden laatste firefox versie"
Invoke-WebRequest -Uri $FireFoxURL -OutFile $Path\$FirefoxInstall

Write-Host "Starten Installatie Firefox" -ForegroundColor Yellow
Start-Process -FilePath "$Path\$FireFoxInstall" -ArgumentList "/S" -Verb RunAs -Wait

################################################
# Download en installeer laatste Chrome versie #
################################################
Write-Host "Downloaden laatste chrome versie"
Invoke-WebRequest $ChromeURL -OutFile $Path\$ChromeInstall

Write-Host "Start Installatie Chrome" -ForegroundColor Yellow
Start-Process -FilePath $Path\$ChromeInstall -Args "/silent /install" -Verb RunAs -Wait

##############################
# Download en installeer VLC #
##############################
Write-Host "Downloaden VLC Media Player"
Invoke-WebRequest $VLCURL -OutFile $Path\$VLCInstall

Write-Host "Start Installatie VLC" -ForegroundColor Yellow
Start-Process -FilePath $Path\$VLCInstall -Args "/S" -Wait

##############################
# Download en installeer VLC #
##############################
Remove-Item $Path\$VLCInstall
Remove-Item $Path\$FirefoxInstall
Remove-Item $Path\$ChromeInstall