Files
powershell/borisprereq_installer.ps1
2023-03-09 09:06:25 +01:00

31 lines
1.3 KiB
PowerShell

$downloadsFolder = "$env:userprofile\Downloads"
$exeFiles = Get-ChildItem -Path $downloadsFolder -Filter *.exe
$msuFiles = Get-ChildItem -Path $downloadsFolder -Filter *.msu
foreach ($file in $exeFiles) {
$program = Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*" | Where-Object {$_.DisplayName -eq $file.BaseName}
if ($program -eq $null) {
Start-Process -FilePath $file.FullName -ArgumentList "/quiet"
Write-Host "Installed $($file.Name)"
} else {
Write-Host "$($file.Name) is already installed"
}
}
foreach ($file in $msuFiles) {
$update = Get-HotFix | Where-Object {$_.HotFixID -eq $file.BaseName}
if ($update -eq $null) {
$kbNumber = $file.BaseName -replace 'KB',''
$kbRegKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Package_for_KB$kbNumber~*~*~*"
$kbPackage = Get-Item $kbRegKey -ErrorAction SilentlyContinue
if ($kbPackage -ne $null) {
Start-Process -FilePath "dism.exe" -ArgumentList "/Online", "/Add-Package", "/PackagePath:$($file.FullName)", "/Quiet", "/NoRestart"
Write-Host "Installed $($file.Name)"
} else {
Write-Host "$($file.Name) is already installed"
}
} else {
Write-Host "$($file.Name) is already installed"
}
}