Jump to content

admin2015

Members
  • Gesamte Inhalte

    2
  • Registriert seit

  • Letzter Besuch

Fortschritt von admin2015

Rookie

Rookie (2/14)

  • Erste Antwort
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei
  • 1 Jahre dabei

Neueste Abzeichen

0

Reputation in der Community

  1. Ich habe ein VBS-Skript gefunden. Man findet nach dem Ausführen des Skriptes die MSI-Datei unter C:\Users\Administrator\AppData\LocalLow\Oracle\Java\ 'JRE_Updater 'Updates and optionally deploys or removes Java Runtime 'Last Update: 06/12/2015 'By Kevin Denham (kevin.denham@gmail.com) ' '================= Options ================================== 'Download=0 if this is a client that is 'not' downloading Download=1 'ModifyJRE=0 if this is a host that is 'only' downloading ModifyJRE=1 'Location for downloaded files. Example: FileStore="\\Server\SharedFolder\" 'Leaving FileStore as "" uses the script's working directory FileStore="\\SERVER\NETLOGON\Java" '0 = Remove JRE, 1 = Update Existing JRE, 2 = Deploy and/or Update JRE x86=2 x64=2 'For x64 bit browsers otherwise use only x86 for x64 systems 'Add any extra Java CLI switches 'http://docs.oracle.com/javase/8/docs/technotes/guides/install/windows_installer_options.html#A1097528 'URL Updated for Java 8 Options 'Example: switches="/s INSTALLDIR=D:\Program Files(x86)\Java\" switches32="/s" switches64="/s" On error resume next 'Do not edit below this line '=================================================================== Set App = CreateObject("Shell.Application") Set objFSO = CreateObject("Scripting.FileSystemObject") Set oShell = WScript.CreateObject("WScript.Shell") Set installer = CreateObject("WindowsInstaller.Installer") Set req = CreateObject("MSXML2.XMLHTTP.6.0") Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.6.0") areAdmin = false 'If FileStore was not specified use the script's working directory If FileStore = "" Then FileStore = objFSO.GetParentFolderName(WScript.ScriptFullName) & "\" file32 = FileStore & "JRE_32bitBrowsers.exe" file64 = FileStore & "JRE_64bitBrowsers.exe" If Download = 1 Then If Not objFSO.FolderExists(FileStore) Then objFSO.CreateFolder(FileStore) logFile = FileStore & "JRE_Bundle.log" 'Create the log that records the last download bundle ID If Not objFSO.FileExists(logfile) Then header = "Current Java Bundle Log: " objFSO.OpenTextFile(logFile, 8, True).WriteLine header End if Set openLog = objFSO.OpenTextFile(logFile, 1, True) readLog = openLog.ReadAll 'Query java.com req.open "GET", "http://www.java.com/en/download/manual.jsp", False req.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64)" req.send() 'Parse query response Call parseCheck(" Offline", file32, bundle32) Call parseCheck(" (64-bit)", file64, bundle64) End If Function parseCheck(str, str2, bndl) strArr = split(req.responseText, "Download Java software for Windows" & str) strArr2 = split(strArr(1), Chr(34)) bndl = strArr2(2) If instr(readLog, bndl) = false Then objFSO.OpenTextFile(logFile, 8, True).WriteLine Date & "|" & bndl 'Our bundle is out-of-date, download latest Call getBundle(str2, bndl) End If End Function Function getBundle(fName, bURL) objXMLHTTP.open "GET", bURL, false objXMLHTTP.send() If objXMLHTTP.Status = 200 Then Set objADOStream = CreateObject("ADODB.Stream") objADOStream.Open objADOStream.Type = 1 objADOStream.Write objXMLHTTP.ResponseBody objADOStream.Position = 0 If objFSO.FileExists(fName) Then objFSO.DeleteFile fName objADOStream.SaveToFile fName objADOStream.Close End if End Function 'Compare version numbers Function chkArr(arr1, arr2, i) If (CLng(arr1(i)) < (CLng(arr2(i)))) Then chkArr = True Exit Function End If If (UBound(arr1) > i) And (UBound(arr2) > i) Then chkArr = chkArr(arr1, arr2, i + 1) End Function If ModifyJRE = 1 Then If objFSO.FileExists(file32) Then store32 = objFSO.GetFileVersion(file32) If objFSO.FileExists(file64) Then store64 = objFSO.GetFileVersion(file64) 'Search for old Java installs For Each product In installer.Products 'If product is JRE If InStr(product, "26A24AE4-039D-4CA4-87B4-") Then Version = installer.ProductInfo(product, "VersionString") 'If installed JRE is 32 bit If Mid(product,29,2) = "32" Then 'If installed JRE is out-of-date or we specified removal If (chkArr(Split(Version, "."), Split(store32, "."), CInt(0)) = True) Or x86 = 0 Then If areAdmin = false Then Call IsElevated oShell.run("msiexec.exe /x " & product & " /qn"), 1, true If x86 = 1 Then x86 = 2 Else If x86 = 2 Then x86 = 1 End If End If If Mid(product,29,2) = "64" Then If (chkArr(Split(Version, "."), Split(store64, "."), CInt(0)) = True) Or x64 = 0 Then If areAdmin = false Then Call IsElevated oShell.run("msiexec.exe /x " & product & " /qn"), 1, true If x64 = 1 Then x64 = 2 Else If x64 = 2 Then x64 = 1 End If End If End if Next 'If FileStore is UNC, transfer files If (Mid(FileStore,1,2) = "\\") And ((x86 = 2) Or (x64 = 2)) Then temp = oShell.ExpandEnvironmentStrings("%temp%") Set TypeLib = CreateObject("Scriptlet.TypeLib") tmpFolder = objFSO.CreateFolder(temp & "\" & TypeLib.Guid) objFSO.CopyFile FileStore & "*", tmpFolder, True file32 = tmpFolder & "\" & objFSO.GetFileName(file32) file64 = tmpFolder & "\" & objFSO.GetFileName(file64) End If 'Install the latest JRE If x86 = 2 And objFSO.FileExists(file32) Then If areAdmin = false Then Call IsElevated oShell.run(chr(34) & file32 & chr(34) & " " & switches32), 1, true End If If x64 = 2 And objFSO.FileExists(file64) Then If areAdmin = false Then Call IsElevated oShell.run(chr(34) & file64 & chr(34) & " " & switches64), 1, true End If If objFSO.FolderExists(tmpFolder) Then objFSO.DeleteFolder tmpFolder, True 'Uninstall the Java Update Scheduler For Each product In installer.Products If InStr(product, "4A03706F-666A-4037-7777-5F2748764D10") Then If areAdmin = false Then Call IsElevated oShell.run("msiexec.exe /X{4A03706F-666A-4037-7777-5F2748764D10} /qn"), 1, true End if Next End If Function IsElevated IsElevated = CreateObject("WScript.Shell").Run("cmd.exe /c ""whoami /groups|findstr S-1-16-12288""", 0, true) = 0 If IsElevated = false Then App.ShellExecute "wscript.exe", Chr(34) & WScript.ScriptFullName & Chr(34), "", "runas" wscript.quit Else areAdmin = true End If End function
  2. Hallo, ich möchte Clients automatisch und permanent mit Java Updates versorgen, bspw. ein mal täglich. Wie stelle ich das am einfachsten an? Es gibt prinzipiell zwei Möglichkeiten, die ich bereits schon mit einem Kollegen durchgekaut habe: 1. Es gibt ein Skript auf dem Server, welches per Task ausgeführt wird und das aktuellste Java Update runterlädt, die MSI-Datei aus der EXE extrahiert und in einem UNC-Pfad bereitstellt. Auf den Clients wird dann per Gruppenrichtlinien ein Anmeldeskript verteilt, welches die MSI-Datei aus dem UNC-Pfad öffnet und silent installiert. Ginge das? Wenn ja, wie gehe ich das an? 2. Es wird ein Anmeldeskript per Gruppenrichtlinien verteilt, das die aktuellste Javaversion herunterlädt, entpackt und installiert. Da dadurch ja auf jedem Client der Download durchgeführt wird, wird das Netz ja extrem belastet. Dem ISA-Server könnte man ja dann z.B. sagen, dass die Datei gecached werden soll. Gibt es noch weitere Möglichkeiten?
×
×
  • Neu erstellen...