Powershell Silent Update Java
Hallo zusammen
Ich möchte die Installation von Java Updates auf meinen paar Client automatisieren. Auf meiner Suche habe ich einen Ansatz gefunden:
http://superuser.com/questions/443686/silent-java-update-check
Das Problem ist, dass es das gefunde Update nicht automatisch installiert. Weiss jemand was ich noch hinzufügen müsste oder hat
jemand einen anderen Ansatz?
Ich habe leider keine Möglichkeit WSUS einzusetzen.
Danke für eure Hilfe
adminst
Ich möchte die Installation von Java Updates auf meinen paar Client automatisieren. Auf meiner Suche habe ich einen Ansatz gefunden:
http://superuser.com/questions/443686/silent-java-update-check
Das Problem ist, dass es das gefunde Update nicht automatisch installiert. Weiss jemand was ich noch hinzufügen müsste oder hat
jemand einen anderen Ansatz?
Ich habe leider keine Möglichkeit WSUS einzusetzen.
Danke für eure Hilfe
adminst
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 232757
Url: https://administrator.de/contentid/232757
Ausgedruckt am: 25.11.2024 um 17:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo adminst,
das Script könntest du hiermit kombinieren, welches die aktuelle Java-Version herunterlädt.
Silent installieren kannst du dann mit :
Grüße Uwe
-edit- als Powershell-Script könnte das dann so aussehen (für eine 32Bit Java Runtime):
das Script könntest du hiermit kombinieren, welches die aktuelle Java-Version herunterlädt.
Silent installieren kannst du dann mit :
java.exe /s REBOOT=Suppress
-edit- als Powershell-Script könnte das dann so aussehen (für eine 32Bit Java Runtime):
# check ob 32Bit oder 64Bit
$osVersion = (gwmi Win32_OperatingSystem).OSArchitecture
if ($osVersion -like "64-Bit"){
$regKey = "HKLM:\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment"
}else{
$regKey = "HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment"
}
$strVersion = (Get-ItemProperty $regKey -name "CurrentVersion" -ErrorAction SilentlyContinue).CurrentVersion
if (!$strVersion){
write-host "Auf dem System ist kein Java installiert. Script beendet" -Foregroundcolor Red
exit
}else{
$strMinorVersion = [int]$strVersion.Split(".")[1]
$strFamily = (Get-ItemProperty $regKey -name "Java$($strMinorVersion)FamilyVersion" -ErrorAction SilentlyContinue)."Java$($strMinorVersion)FamilyVersion"
$strBuildVersion = [int]$strFamily.Split("_")[1]
}
#Download-Pfad für die Dateien
$targetPathJava32 = $env:TEMP + "\java32bit.exe"
#Webseite mit WebClient passendem Encoding und 64-Bit User-Agent herunterladen
$net = New-Object System.Net.WebClient
$net.Encoding = [System.Text.Encoding]::UTF8
$net.Headers.Add("User-Agent","WOW64")
$net.Headers.Add("Accept-Language","de-de")
$content = $net.DownloadString("http://www.java.com/de/download/manual.jsp")
# Webversion extrahieren
$webversion = ([regex]'Empfohlen Version (\d+) Update (\d+)').Match($content)
$strWebMinor = [int]$webversion.Groups[1].Value
$strWebBuild = [int]$webversion.Groups[2].Value
if ($strMinorVersion -lt $strWebMinor -or $strBuildVersion -lt $strWebBuild){
write-host "Es ist ein Java-Update verfügbar" -ForegroundColor Yellow
# Downloadlinks aus dem Quelltext extrahieren
$link32bit = ([regex]'<a title="Download der Java-Software für Windows Offline" href="([^>\"]+)">').Match($content).Groups[1].Value
if ($link32bit -ne ""){
write-host "Beginne Download des Updates. Bitte warten ... " -ForegroundColor Green -NoNewline
# Download Update
$net.DownloadFile($link32bit,$targetPathJava32)
write-host "Download abgeschlossen" -ForegroundColor Green
write-host "Installiere Update ..." -ForeGroundColor Yellow
# Installiere Update silent
Start-Process -FilePath $targetPathJava32 -ArgumentList "/s REBOOT=Suppress" -wait
if ($LASTEXITCODE -eq 0){
write-host "Java $strWebMinor Update $strWebBuild wurde erfolgreich installiert"
}else{
write-host "Bei der Installation ist ein Fehler aufgetreten. Fehlercode: $LASTEXITCODE"
}
}else{
write-host "Download-Link konnte nicht extrahiert werden!" -ForegroundColor Red
}
}else{
write-host "Kein Update verfügbar. Script beendet." -ForegroundColor DarkGray
}