Alle Programme aktualisieren (winget)
Nutzt den in Windows eingebauten Paketmanager winget: zeigt veraltete Programme an und aktualisiert alle auf einmal oder einzeln. Programme, die winget nicht kennt, bleiben unberührt. Fehlt winget, hilft das Skript beim Nachinstallieren aus dem Microsoft Store.
SHA-256:
38e6cbb8746c37519b21e8c232225ce1ed454bda39efe94b2e344a43c75d275b Code
So sieht die Datei aus, die Sie herunterladen (80 Zeilen). Die Kommentare oben im Skript erklären, was es tut.
<# : Friederich-IT - Programme aktualisieren (winget)
@echo off
setlocal
chcp 65001 >nul
title Programme aktualisieren - Friederich-IT
set "FIT_SELF=%~f0"
powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "iex ([IO.File]::ReadAllText($env:FIT_SELF,[Text.Encoding]::UTF8))"
exit /b %errorlevel%
#>
# ==========================================================================
# Programme aktualisieren Version 1.0, Oktober 2026
# https://friederich-it.de/downloads
#
# Nutzt den in Windows 10/11 eingebauten Paketmanager "winget", um
# veraltete Programme zu finden und auf den neuesten Stand zu bringen –
# alle auf einmal oder einzeln. Programme, die winget nicht kennt,
# werden nicht angefasst. Einzelne Programme können während des Updates
# nach Administratorrechten fragen.
# ==========================================================================
$ErrorActionPreference = 'Continue'
try { [Console]::OutputEncoding = [Text.Encoding]::UTF8 } catch {}
$ok = '--accept-source-agreements'
$pk = '--accept-package-agreements'
Write-Host ''
Write-Host ' Programme aktualisieren (winget)' -ForegroundColor Cyan
Write-Host ' ================================' -ForegroundColor Cyan
Write-Host ''
if (-not (Get-Command winget -ErrorAction SilentlyContinue)) {
Write-Host ' winget wurde nicht gefunden.' -ForegroundColor Yellow
Write-Host ' Abhilfe: Im Microsoft Store den "App-Installer" installieren oder aktualisieren,'
Write-Host ' danach dieses Skript erneut starten.'
Write-Host ''
Write-Host ' [S] Store öffnen [Enter] Beenden' -ForegroundColor DarkGray
$t = [Console]::ReadKey($true)
if ($t.KeyChar -in 's', 'S') { Start-Process 'ms-windows-store://pdp/?ProductId=9NBLGGH4NNS1' }
exit
}
function Show-Liste {
Write-Host ' Suche nach Updates (das kann einen Moment dauern) ...' -ForegroundColor DarkGray
Write-Host ''
winget upgrade $ok --include-unknown
Write-Host ''
}
Show-Liste
while ($true) {
Write-Host ' [A] Alle aktualisieren [E] Einzelnes Programm [L] Liste neu laden [Enter] Beenden' -ForegroundColor DarkGray
$t = [Console]::ReadKey($true)
if ($t.Key -eq 'Enter' -or $t.Key -eq 'Escape') { break }
switch -Regex ([string]$t.KeyChar) {
'^[aA]$' {
Write-Host ''
Write-Host ' Alle Programme werden aktualisiert. Bitte geöffnete Programme vorher schließen.' -ForegroundColor Yellow
Write-Host ' Wirklich starten? (j/n) ' -NoNewline
$j = [string][Console]::ReadKey($true).KeyChar; Write-Host $j
if ($j -in 'j', 'J') {
winget upgrade --all $ok $pk
Write-Host ''
Write-Host ' Fertig. Falls einzelne Updates fehlgeschlagen sind, steht es oben in der Ausgabe.' -ForegroundColor Green
Write-Host ''
}
}
'^[eE]$' {
Write-Host ''
$id = (Read-Host ' ID aus der Spalte "ID" eingeben (z. B. Mozilla.Firefox)') -replace '["''`;&|<>]', ''
$id = $id.Trim()
if ($id -match '^[\w.+-]{2,100}$') {
winget upgrade --id $id --exact $ok $pk
Write-Host ''
} elseif ($id) {
Write-Host ' Ungültige ID.' -ForegroundColor Yellow
}
}
'^[lL]$' { Write-Host ''; Show-Liste }
}
}