Anfänger braucht Hilfe bei einem Downloadskript
Hallo Leute,
ich bin seit August Fisi-Azubi und wollte an meinem Arbeitsplatz verschiedene Abläufe automatisieren. Dazu will ich mich ein bisschen bei Powershell reinfuchsen. Ich habe bisher keine Erfahrung im Programmieren oder Skripten, aber habe mich an einem Skript versucht. Das soll die installierte Version eines Programms mit der auf dem Downloadserver abgleichen. Falls die Version auf dem Downloadserver ungleich der installierten Version ist, dann wird der Download angestoßen. Das funktioniert auch bisher. Die heruntergeladene Datei ist eine Zipdatei. Jetzt möchte ich, dass diese Datei automatisch entpackt und installiert wird. Mit den beiden Punkten automatisch entpacken und installieren bräuchte ich eure Hilfe. Wie mache ich das? Folgendes habe ich bereits.
ich bin seit August Fisi-Azubi und wollte an meinem Arbeitsplatz verschiedene Abläufe automatisieren. Dazu will ich mich ein bisschen bei Powershell reinfuchsen. Ich habe bisher keine Erfahrung im Programmieren oder Skripten, aber habe mich an einem Skript versucht. Das soll die installierte Version eines Programms mit der auf dem Downloadserver abgleichen. Falls die Version auf dem Downloadserver ungleich der installierten Version ist, dann wird der Download angestoßen. Das funktioniert auch bisher. Die heruntergeladene Datei ist eine Zipdatei. Jetzt möchte ich, dass diese Datei automatisch entpackt und installiert wird. Mit den beiden Punkten automatisch entpacken und installieren bräuchte ich eure Hilfe. Wie mache ich das? Folgendes habe ich bereits.
$t2_dl_aktuell = ((Invoke-WebRequest -Uri "https://download.t2med.de/server").allelements | where {$_.outertext -like "[1-9]*.[1-9]*.[1-9]*"}).outertext
$insver = Get-itempropertyvalue "HKLM:\SOFTWARE\Microsoft\windows\currentversion\Uninstall\3082-4137-0696-1197" -name "displayversion"
$t2_download_link = (Invoke-WebRequest -uri "https://download.t2med.de/server/").links | Where-Object innerhtml -eq "windows" | Select-Object href | select -ExpandProperty href
if ($t2_dl_aktuell -ne $insver) {
Start-BitsTransfer -Source $t2_download_link -destination "$home\Downloads"
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1513085056
Url: https://administrator.de/forum/anfaenger-braucht-hilfe-bei-einem-downloadskript-1513085056.html
Ausgedruckt am: 14.04.2025 um 17:04 Uhr
5 Kommentare
Neuester Kommentar

Mit den beiden Punkten automatisch entpacken und installieren bräuchte ich eure Hilfe. Wie mache ich das?
Expand-ArchiveStart-Process
Silent Install And Finding Silent Parameters
🖖
Würde ich mir auch mal ansehen:
Choclatey - The Package Manager for Windows - Modern Software Automation
Moin,
neben dem praktischen Aspekt, solltest Du Dich auch mit der Sicherheit beschäftigen.
Ein unfreundlicher Mensch tauscht Deine Datei auf dem Server gegen einen RMM-Agent aus.
Alle PCs installieren diesen brav und nun haben alle neue Freunde aus aller Welt.
Du wärst nicht der Erste dem so etwas passiert.
Man kann dies über Prüfsummen, die woanders gespeicher sind, oder Zertifikate abfangen.
Softwareentwicklung, dazu gehören auch Skripte, sind immer:
1. 33% Planung
2. 33% Programmieren
3. 33% Testen
4. 33% Dokumentieren
Viele kürzen die Punkte 1, 3 und 4 oder lassen sie ganz weg.
Stefan
neben dem praktischen Aspekt, solltest Du Dich auch mit der Sicherheit beschäftigen.
Ein unfreundlicher Mensch tauscht Deine Datei auf dem Server gegen einen RMM-Agent aus.
Alle PCs installieren diesen brav und nun haben alle neue Freunde aus aller Welt.
Du wärst nicht der Erste dem so etwas passiert.
Man kann dies über Prüfsummen, die woanders gespeicher sind, oder Zertifikate abfangen.
Softwareentwicklung, dazu gehören auch Skripte, sind immer:
1. 33% Planung
2. 33% Programmieren
3. 33% Testen
4. 33% Dokumentieren
Viele kürzen die Punkte 1, 3 und 4 oder lassen sie ganz weg.
Stefan

In deinem Fall brauchst du nicht zwingend BITs nutzen, das hier reicht auch
oder auch
Und das Auslesen des Hashes der heruntergeladenen Datei dann mit dem CMDLet Get-FileHash
Invoke-WebRequest 'https://ziel.zip' -outfile 'D:\download.zip'
(New-Object System.Net.WebClient).DownloadFile('https://ziel.zip','D:\download.zip')
Das Hauptproblem ist, dass ich nicht verstehe, wie der Entpackvorgang gestartet wird
Na einfach Expand-Archive den Pfad deiner Downloaddatei übergeben und dann entpacken .... Einfach mal die Doku genau lesen!Kann man das mit Prüfsummencheck und Zertifikatekontrolle auch mit Powershell regeln?
Ja, bei ungültigen gefakten Zertifikaten wird der Download in der PS eh schon fehl schlagen, Prüfsumme kannst du von der Webseite auslesen:$page = iwr 'https://download.t2med.de/server'
$hash = $page.links | ?{$_.href -match 'zip\.sha256$'} | select -Expand innerText
Und das Auslesen des Hashes der heruntergeladenen Datei dann mit dem CMDLet Get-FileHash
(get-Filehash 'D:\download.zip' -Algorithm SHA256).Hash
Zitat von @bolsse:
Kann man das mit Prüfsummencheck und Zertifikatekontrolle auch mit Powershell regeln?
Moin,Kann man das mit Prüfsummencheck und Zertifikatekontrolle auch mit Powershell regeln?
man kann mit PS fast alles machen.
Muss man aber nicht, mit einer richtigen Programmiersprache kann man die Fehlerbehandlung deutlich einfacher gestalten. Ich tue mir PS nicht an. Bzw. nur da wo es keine Alternativen gibt (meine RMM-Anbindung kann nur PS).
Stefan