
Heute möchte ich eine clevere Methode zeigen, mit der sich Softwareinstallationen deutlich vereinfachen lassen. Stell dir vor, du hast ein Skript, das automatisch benötigte Software auf einem Rechner installiert. Das ist praktisch – aber es geht noch einfacher.
Die Idee:
Alle Installationsdateien liegen gesammelt in einem Ordner, und das Skript greift lediglich über den Dateinamen darauf zu.
Warum das ein Gamechanger ist
Das klingt zunächst banal, hat aber massive Vorteile:
- Keine wechselnden Pfade mehr
- Kein Anpassen des Skripts bei neuen Versionen
- Klare, reproduzierbare Installationen
Das Skript wird gestartet und findet die passende Datei sofort. Das spart Zeit und reduziert Fehler.
Praktisches Beispiel
Angenommen, du nutzt ein PowerShell-Skript, das auf einem Server oder einer Netzwerkfreigabe nach MSI-Dateien sucht:
- Prüfen, ob die Datei existiert
- Kopieren auf den lokalen Rechner
- Installation ausführen
Einfach, zuverlässig, automatisierbar.
Der entscheidende Vorteil bei Updates
Kommt ein Update, ersetzt du nur die Datei im Ordner.
Der Dateiname bleibt gleich – das Skript bleibt unverändert.
Ergebnis:
- Kein Skript-Anpassen
- Kein Verteilen neuer Versionen
- Ein zentraler Ort für alle Updates
Gerade bei mehreren Rechnern oder ganzen Netzwerken ist das Gold wert.
Konsistenz und Fehlerreduktion
Da jede Installation exakt gleich abläuft:
- Weniger manuelle Fehler
- Leichtere Fehlersuche
- Sauberer, nachvollziehbarer Ablauf
Ein Skript zu korrigieren ist deutlich einfacher, als Installationsfehler auf einzelnen Rechnern zu suchen.
Fazit
Alle Software in einem Ordner bündeln und per Skript installieren:
- Spart Zeit
- Reduziert Fehler
- Macht Updates trivial
Einmal eingerichtet, will man es nicht mehr anders machen.
Beispielskript (PowerShell)
```powershell
$UNCPath = "\Server\Share\Software\"
$FilePrefix = "Dateiname" # gewünschten Dateinamen anpassen
$MSIParams = "/qn" # weitere MSI-Parameter optional
$TargetPath = "C:\temp" # lokaler Zielordner
Suche nach MSI-Dateien mit dem definierten Präfix
$MSIFiles = Get-ChildItem -Path $UNCPath -Filter "$FilePrefix*.msi"
Prüfen, ob passende Dateien gefunden wurden
if ($MSIFiles.Count -eq 0) {
Write-Host "Keine passende MSI-Datei gefunden. Skript wird beendet."
exit
} elseif ($MSIFiles.Count -gt 1) {
Write-Host "Mehrere passende MSI-Dateien gefunden. Erste Datei wird verwendet."
}
$MSIFileName = $MSIFiles[0].Name
$FullUNCPath = Join-Path $UNCPath $MSIFileName
$LocalFile = Join-Path $TargetPath $MSIFileName
Zielordner anlegen, falls nicht vorhanden
if (-not (Test-Path $TargetPath)) {
New-Item -Path $TargetPath -ItemType Directory -Force | Out-Null
}
MSI-Datei lokal kopieren
Copy-Item -Path $FullUNCPath -Destination $LocalFile -Force
Installation starten
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i"$LocalFile" $MSIParams"
-Wait -NoNewWindow
Kommentare