[Skripte]

Softwareinstallation leicht gemacht mit der Powershell

/softwareinstallation-leicht-gemacht-mit-der-powershell
Softwareinstallation leicht gemacht mit der Powershell

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

Optional: MSI nach der Installation löschen

Remove-Item -Path $LocalFile -Force

Anzeige

/comments0 Einträge

Kommentare

> NO_COMMENTS_FOUND

> INITIATE_COMMENT_PROTOCOL

MARKDOWN_SUPPORT: ENABLED
CHARS: 0