Jump to content

Javaupdate per GPO/Loginscript deaktivieren?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Leute,

 

Ich möchte ein Skript schreiben, das alle bestehenden Javaversionen auf den Clients deinstalliert und die neueste Version 1.6.13 installiert. Dabei wollte ich die automatischen Updates deaktivieren. Dabei scheitere ich aber bereits kläglich. Früher unter Version 1.5 funktionierte der folgende Regkey:

 

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy]

"EnableAutoUpdateCheck"=dword:00000000

 

Seit der Version 1.6 ist der inaktiv und man muss die Update-Einstellung über folgenden Key steuern:

 

[HKEY_CURRENT_USER\Software\JavaSoft\Java Update\Policy]

"EnableAutoUpdateCheck"=hex:blabla

 

Das Problem hierbei ist, dass der Key bei jedem Client anders lautet und dadurch nicht mit 0 oder 1 eingestellt werden kann.

 

Hat jemand das Problem über ein Skript lösen können?

 

Gruss SBK

Link zu diesem Kommentar

Hallo Bubble,

 

Ich habe das Skript soweit zusammen. Zum deinstallieren aller vorgängigen Versionen habe ich folgendes Skript im Einsatz:

 

@echo off & cls

Rem List all Installation subkeys from uninstall key.

echo Searching Registry for Java Installs

for /f %%I in ('reg query HKLM\SOFTWARE\microsoft\windows\currentversion\uninstall') do echo %%I | find "{" > nul && call :All-Installations %%I

echo Search Complete..

goto :EOF

:All-Installations

Rem Filter out all but the Sun Installations

for /f "tokens=2*" %%T in ('reg query %1 /v Publisher 2^> nul') do echo %%U | find "Sun" > nul && call :Sun-Installations %1

goto :EOF

:Sun-Installations

Rem Filter out all but the Sun-Java Installations. Note the tilda + n, which drops all the subkeys from the path

for /f "tokens=2*" %%T in ('reg query %1 /v DisplayName 2^> nul') do echo . Uninstalling - %%U: | find "Java" && call :Sun-Java-Installs %~n1

goto :EOF

:Sun-Java-Installs

Rem Run Uninstaller for the installation

MsiExec.exe /x%1 /qb

echo . Uninstall Complete, Resuming Search..

goto :EOF

 

Das nachfolgende überprüft ob die aktuelle installiert ist und ruft andernfalls die obenstehende Deinstallationsroutine auf und installiert die aktuelle Version 13.

 

@echo off & setlocal

set "Datei=c:\Programme\Java\jre6\bin\java.exe"

set "GetV=%Temp%\GetV.vbs"

echo Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%"

echo Set colFiles=objWMIService.ExecQuery ("SELECT * FROM CIM_Datafile WHERE Name='"^&Replace(WScript.Arguments(0),"\","\\")^&"'")>>"%GetV%"

echo For Each objFile in colFiles: WScript.Echo objFile.Version: Next>>"%GetV%"

set Version=

for /f %%i in ('cscript //nologo "%GetV%" "%Datei%"') do set "Version=%%i"

if defined Version if [%Version%]==[6.0.130.3] goto :ende6

del "%GetV%"

call \\server\SYSVOL\server.local\scripts\Javauninstall.bat

\\server\Java\jAVARUNTIME1.6.0.13.exe /quiet /norestart

:ende6

 

Was mir noch fehlt, ist das deaktivieren der automatischen Updates.

 

Falls Du mir Deine Lösung noch angeben könntest, wäre mir sehr gedient.

 

Gruss SBK

Link zu diesem Kommentar

Hallo SBK,

 

bei mir spielt das so:

$myUser = Der Administrator

$myDom = @LogonDomain

$myPass = Das Administrator-Kennwort

$myDir = "C:\Software\"

$myTag = "Java-6.13.ins"

$myInstall = "\\Fileserver\Netlogon\Software\Java\jre-6u13.exe /passive"

$myFileSrc1 = "\\Fileserver\Netlogon\Software\Java\deployment.config"

$myFileDest1 = @WindowsDir & "\Sun\Java\Deployment\"

$myMessage = "Sun Java Runtime 6U13 wird installiert."

 

If Not IsAdmin() Then

RunAs($myUser, $myDom, $myPass, 1, @ScriptFullPath, @ScriptDir, @SW_HIDE)

Exit

EndIf

 

If Not FileExists ($myDir) Then ; Marker-Verzeichnis existiert nicht.

DirCreate ($myDir) ; also Anlegen.

EndIf ; Verzeichnis existiert

 

If FileExists($myDir & "\" & $myTag) Then ; Programm-Tag existiert auch, Programm ist schon installiert.

Exit ; Script beenden, alles Gut.

EndIf

 

BlockInput(1) ; Benutzereingaben sind gesperrrt

SplashTextOn("Automatische Software-Installation", @CRLF & " " & $myMessage & @CRLF & " Bitte warten...", 250, 70, -1, 70, 4, "", 10)

runwait( $myInstall ) ; Programm-Installation (Silent)

FileCopy( $myFileSrc1, $myFileDest1, 9)

SplashOff()

BlockInput(0) ; Benutzereingaben wieder freigegeben

$myFile = FileOpen( $myDir & $myTag, 2)

 

If $myFile = -1 Then

MsgBox(0, "Hinweis", "TAG konnte nicht erstellt werden!")

Exit

EndIf

 

FileClose ($myFile)

 

Das ganze wird kompiliert und im Startup-Skript aufgerufen. Da ich die normale Setup-Routine ausführe wird sauber ein Update auf die neue Version durchgeführt.

Danach wird die Datei 'deployment.config' nach '%windir%\Sun\Java\Deployment' kopiert. In der Datei gibt es nur zwei Zeilen:

 

deployment.javaws.autodownload=NEVER

deployment.javaws.autodownload.locked=

 

Siehe: System- and User-Level Properties

 

So installiere oder update ich mittlerweile fast alle Nicht-Microsoft-Programme (Firefox, Acrobat Reader etc.)

 

Gruss,

Babble

Link zu diesem Kommentar
  • 3 Monate später...

Hi Babble,

 

Es ist zwar schon ein weilchen her, aber ich muss nochmals auf die Deployment.config zu sprechen kommen. Ich habe die Datei über Loginskript auf alle PC's ins %windir%\Sun\Java\Deployment kopiert.

 

Der Inhalt der Datei besteht wie von Dir angegeben nur aus zwei Zeilen:

deployment.javaws.autodownload=NEVER

deployment.javaws.autodownload.locked=

 

Die Javaupdates sind aber noch immer aktiv und können nach belieben vom Benutzer verändert werden. Gemäss Filemon.exe wird aber beim starten der JAVA-Konsole in der Systemsteuerung, das deployment.config geladen. Dies hat aber anscheinend keine Auswirkung. Funktioniert es bei Dir wirklich?

 

Gruss SBK

Link zu diesem Kommentar
Deaktiviert der Registryeintrag das Javaupdate wirklich oder blendet er nur das Register Aktualisierung aus?

 

Wäre super wenn der Eintrag funktioniert.

 

Am besten probierst Du es einmal selbst aus. Mit dem ProcessMonitor kann man ja sehen was geändert wurde. Evtl. hilft dir ja auch dieser Thread weiter: http://www.mcseboard.de/windows-forum-ms-backoffice-31/java-per-gpo-verteilen-regkeys-147404.html Nicht zu vergessen der Hinweis von Stephan Betken.

Link zu diesem Kommentar

Hallo SBK,

 

das ganze funktionierte nicht mehr ab Java 6. Jetzt entferne ich einfach den Autostart von jusched.exe aus dem Run-Key in der Registry. Das Auto-It-Skript verteilt Java weiterhin, löscht aber nach der Installation zusätzlich den Key, den Stephan Betken genannt hat.

Das automatische Update ist dann deaktiviert, allerdings ist der Haken noch im Kontrolfeld zu sehen. Kosmetik.

 

Gruss,

Babble.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...