31 lines
1.3 KiB
PowerShell
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"
|
|
}
|
|
}
|