boxhandschuh
Goto Top

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.


$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"  
}

Content-Key: 1513085056

Url: https://administrator.de/contentid/1513085056

Printed on: April 23, 2024 at 12:04 o'clock

Mitglied: 149569
149569 Nov 16, 2021 updated at 08:09:52 (UTC)
Goto Top
Mit den beiden Punkten automatisch entpacken und installieren bräuchte ich eure Hilfe. Wie mache ich das?
Expand-Archive
Start-Process
Silent Install And Finding Silent Parameters
🖖

Würde ich mir auch mal ansehen:
Choclatey - The Package Manager for Windows - Modern Software Automation
Member: StefanKittel
StefanKittel Nov 16, 2021 at 08:22:58 (UTC)
Goto Top
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
Member: Boxhandschuh
Boxhandschuh Nov 16, 2021 at 09:05:26 (UTC)
Goto Top
Zitat von @149569:

Mit den beiden Punkten automatisch entpacken und installieren bräuchte ich eure Hilfe. Wie mache ich das?
Expand-Archive
Start-Process
Silent Install And Finding Silent Parameters
🖖

Würde ich mir auch mal ansehen:
Choclatey - The Package Manager for Windows - Modern Software Automation

Nice, danke. Einiges davon verstehe ich noch nicht, aber das mit dem expand archive und start process sieht nützlich für mich aus. Ich habe das mal mit dem download von sumatra pdf probiert. Der läd das runter, aber wartet nicht, bis die Datei heruntergeladen ist, sondern versucht sie gleich zu entpacken. Das Hauptproblem ist, dass ich nicht verstehe, wie der Entpackvorgang gestartet wird, nachdem die Datei heruntergeladen wurde. Wie starte ich expand-archive in Bezug auf die so eben heruntergeladene Datei?

start-bitstransfer -source "https://kjkpubsf.sfo2.digitaloceanspaces.com/software/sumatrapdf/rel/SumatraPDF-3.3.3-64.zip" -destination "C:\Users\Administrator\Downloads" | Expand-Archive   



Zitat von @StefanKittel:

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

Kann man das mit Prüfsummencheck und Zertifikatekontrolle auch mit Powershell regeln?
Mitglied: 149569
149569 Nov 16, 2021 updated at 09:22:04 (UTC)
Goto Top
In deinem Fall brauchst du nicht zwingend BITs nutzen, das hier reicht auch
Invoke-WebRequest 'https://ziel.zip' -outfile 'D:\download.zip'  
oder auch
(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  
Member: StefanKittel
StefanKittel Nov 16, 2021 at 09:19:38 (UTC)
Goto Top
Zitat von @bolsse:
Kann man das mit Prüfsummencheck und Zertifikatekontrolle auch mit Powershell regeln?
Moin,
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