'------------------------------------------------------------------- ' Gerd Czaya ' 01.04.2015 ' Script JavaUninstall 3.0 erweitert, ' Branding Key wird geschrieben ' die Detection Methods aller im Java Application Pack ' vorhandenen Applications muessen geloescht werden: ' " Java Application Pack" ' DeleteReg "KEY","HKLM\SOFTWARE\ApplicationPacks\JavaAP", 32 ' DeleteReg "KEY","HKLM\SOFTWARE\ApplicationPacks\JavaAP", 64 ' ' "Reset Java Uninstall" ' DeleteReg "KEY","HKLM\SOFTWARE\AudiAG\InstalledProducts\Audi_JavaUninstall", 32 ' DeleteReg "KEY","HKLM\SOFTWARE\AudiAG\InstalledProducts\Audi_JavaUninstall", 64 ' ' "Reset Java Security Config" ' DeleteReg "KEY","HKLM\Software\AudiAG\InstalledProducts\Audi_JavaSecurityConfig", 32 ' DeleteReg "KEY","HKLM\Software\AudiAG\InstalledProducts\Audi_JavaSecurityConfig", 64 ' ' "Reset Java 7u67" ' DeleteReg "VALUE", "HKLM\Software\ApplicationPacks\JavaInstal", 1, 32 '-------------------------------------------------------------------- ' Gerd Czaya ' 11.04.2015 ' Script fuer JavaInstal 3.1 angepasst '-------------------------------------------------------------------- Option Explicit Dim pName, pVersion, pLang, pRevision Dim pInstallDate, pAES, pCustomer pName = "Audi_JavaUninstall" pVersion = "4.0" pLang = "NTR" pRevision = "91" pAES = "AES-1-001386-A" pCustomer = "VWG" '----- Functions.vbs einbinden Dim olibfso : Set olibfso = CreateObject("Scripting.FileSystemObject") ExecuteGlobal olibfso.OpenTextFile(olibfso.GetParentFolderName(Wscript.ScriptFullName) + "\_Functions.vbs", 1, false).ReadAll Set olibfso = nothing LogEnabled = True ClientInfo() '----- Clients (Delete this block if not needed) AC1_32_O = 1 AC2_32_O = 1 AC2_64_O = 1 AC2_32_N = 1 AC2_64_N = 1 AC3_Alpha = 1 AC4_64_O = 1 AC4_64_N = 1 ClientCheck() '----- START Deinstallation ----- Dim strArgument, bRemoveControlPannel If WScript.Arguments.Count() < 1 Then ErrorHandling 16100, "ERROR | Parameter erforderlich." VbsLog "Parameter: /uninstall:""1.4,1.5""" VbsLog "Values: 1.4,1.5,1.6,1.7,1.8,Switcher" FinishScript() End If DIM Processes : Processes = "iexplore.exe,firefox.exe,chrome.exe,jusched.exe,jqs.exe,java.exe,javaw.exe,javacpl.exe,Receiver.exe,VisFastStart.exe" 'Blende If checkProc(Processes) = True Then ' CheckLockScreen() ' If LockScreenActive = true Then ' ErrorHandling 16199, "ERROR | Lockscreen is active" ' FinishScript() ' end if KillProc Processes WScript.Sleep 5000 End If strArgument = WScript.Arguments.Named("Uninstall") bRemoveControlPannel = True VbsLog "Uninstall arguments: " & strArgument VbsLog "---------" Dim x,i x = Split(WScript.Arguments.Named("Uninstall"), ",") For i = LBound(x) To UBound(x) x(i) = Trim(x(i)) Select Case LCase(x(i)) Case "1.4" Uninstall "{7148F0A8-6813-11D6-A77B-00B0D0142[0]0}",Null,0,19,"Java 1.4.2_",Null Case "1.5" Uninstall "{3248F0A8-6813-11D6-A77B-00B0D0150[0]0}",Null,0,23,"Java 1.5.0_",Null Case "1.6" Uninstall "{26A24AE4-039D-4CA4-87B4-2F832160[0]FF}","{3248F0A8-6813-11D6-A77B-00B0D0160[0]0}",0,22,"Java 1.6.0_",Null Uninstall "{26A24AE4-039D-4CA4-87B4-2F832160[0]FF}","{26A24AE4-039D-4CA4-87B4-2F864160[0]FF}",23,45,"Java 1.6.0_",Null Case "1.7" Uninstall "{26A24AE4-039D-4CA4-87B4-2F832170[0]FF}","{26A24AE4-039D-4CA4-87B4-2F864170[0]FF}",1,55,"Java 7u",Null Uninstall "{26A24AE4-039D-4CA4-87B4-2F032170[0]FF}","{26A24AE4-039D-4CA4-87B4-2F064170[0]FF}",56,72,"Java 7u",Null Uninstall "{26A24AE4-039D-4CA4-87B4-2F032170[0]FF}","{26A24AE4-039D-4CA4-87B4-2F064170[0]FF}",73,95,"Java 7u",Null Case "1.8" Uninstall "{26A24AE4-039D-4CA4-87B4-2F832180[0]F0}","{26A24AE4-039D-4CA4-87B4-2F864180[0]F0}",0,92,"Java 8u",Null Case "switcher" UninstallProduct "Audi Java Switcher3.1", "{1E1922B3-DE5E-48E2-9C12-5DBF0A34A10C}" UninstallProduct "Audi Java Switcher3.2", "{CBC3619D-76C1-4621-857B-FED1C3C7EBA1}" DeleteReg "KEY", "HKLM\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\AUDI_JAVA", GetOSBit() DeleteReg "KEY", "HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\AdvancedOptions\AUDI_JAVA", GetOSBit() End Select Next UninstallProduct "SDK SE v1.4.2_11","{35A3A4F4-B792-11D6-A78A-00B0D0142110}" UninstallProduct "Java jre 6 Update 18","{00BA866C-F2A2-4BB9-A308-3DFA695B6F7C}" UninstallProduct "Java jdk 6 Update 18","{32A3A4F4-B792-11D6-A78A-00B0D0160180}" UninstallProduct "Java jre_x64 6 Update 18","{64A3A4F4-B792-11D6-A78A-00B0D0160180}" UninstallProduct "Java jdk_x64 6 Update 18","{26A24AE4-039D-4CA4-87B4-2F86416018FF}" UninstallProduct "Java 7u25 SE Development Kit","{32A3A4F4-B792-11D6-A78A-00B0D0170250}" UninstallProduct "Java 7 Update 25 - SE Development Kit 64-bit","{64A3A4F4-B792-11D6-A78A-00B0D0170250}" UninstallProduct "Java 8 Update 25","{26A24AE4-039D-4CA4-87B4-2F83218025F0}" UninstallProduct "Java 8 Update 25 - x64Bit","{26A24AE4-039D-4CA4-87B4-2F86418025F0}" UninstallProduct "Java jdk 8 Update 60","{32A3A4F4-B792-11D6-A78A-00B0D0180600}" UninstallProduct "Java jdk 8 Update 60 - x64Bit","{64A3A4F4-B792-11D6-A78A-00B0D0180600}" DeleteReg "KEY","HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\Oracle_Java\", GetOSBit() If bRemoveControlPannel = True And GetOSBit() = 64 Then 'Löscht Verknüpfungen in der Systemsteuerung DeleteReg "KEY", "HKCR\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}", GetOSBit() DeleteReg "KEY", "HKCR\CLSID\{4299124F-F2C3-41b4-9C73-9236B2AD0E8E}", GetOSBit() DeleteReg "KEY", "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{4299124F-F2C3-41b4-9C73-9236B2AD0E8F}", GetOSBit() DeleteReg "KEY", "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace\{4299124F-F2C3-41b4-9C73-9236B2AD0E8E}", GetOSBit() End If DeleteFile Wshshell.SpecialFolders("AllUsersDesktop") & "\Java Web Start.lnk" 'Benutzerprofile bereinigen VbsLog "-----> Bereinigung Benutzerprofile" Dim Dir,LoeschenDir,Item,SunDir,SunItem If CheckFolder ("c:\users") = True Then Set Dir = FSO.GetFolder("c:\users") For Each Item In Dir.SubFolders LoeschenDir = "c:\users\" & Item.Name & "\AppData\LocalLow\Sun\Java\Deployment" If CheckFolder(LoeschenDir) Then Set SunDir = FSO.GetFolder(LoeschenDir) For Each SunItem In SunDir.SubFolders If LCase(SunItem.Name) <> "security" Then DeleteFolder SunItem.Path Next DeleteFile LoeschenDir & "\deployment.properties" Else VbsLog "Information | '" & LoeschenDir & "' nicht gefunden" End If Next Else VbsLog "Information | 'c:\users' nicht gefunden" End If VbsLog "-----> Bereinigung Benutzerprofile beendet" 'Leere Java Ordner löschen VbsLog "-----> Bereinigung Java Ordner" If CheckFolder(ProgramFiles & "\Java") Then Set Dir = FSO.GetFolder(ProgramFiles & "\Java") For Each Item In Dir.SubFolders If Not CheckFile(Item.Path & "\bin\java.exe") Then DeleteFolder Item.Path Else VbsLog "Information | '" & Item.Path & "' nicht gelöscht, da 'bin\java.exe' vorhanden" End If Next Else VbsLog "Ordner '" & ProgramFiles & "\Java' nicht vorhanden" End If If GetOSBit()=64 Then If CheckFolder(ProgramFiles64 & "\Java") Then Set Dir = FSO.GetFolder(ProgramFiles64 & "\Java") For Each Item In Dir.SubFolders If Not CheckFile(Item.Path & "\bin\java.exe") Then DeleteFolder Item.Path End If Next Else VbsLog "Ordner '" & ProgramFiles64 & "\Java' nicht vorhanden" End If End If VbsLog "-----> Bereinigung Java Ordner beendet" WriteRegInfo "0" ' Notwendiger RegKey für die permanente Neuinstallations-Möglichkeit sorgt WriteReg "REG_DWORD", "HKLM\Software\ApplicationPacks\JavaUninstall", 1, 32 ' Bereinigen der Detection Keys VbsLog "-----> Bereinigung Detection Keys" VbsLog "-----> Reset Java Application Pack" DeleteReg "KEY","HKLM\SOFTWARE\ApplicationPacks\JavaAP", 32 DeleteReg "KEY","HKLM\SOFTWARE\ApplicationPacks\JavaAP", 64 VbsLog "-----> Reset Java Uninstall" DeleteReg "KEY","HKLM\SOFTWARE\AudiAG\InstalledProducts\Audi_JavaUninstall", 32 DeleteReg "KEY","HKLM\SOFTWARE\AudiAG\InstalledProducts\Audi_JavaUninstall", 64 VbsLog "-----> Reset Java Security Config" DeleteReg "KEY","HKLM\Software\AudiAG\InstalledProducts\Audi_JavaSecurityConfig", 32 DeleteReg "KEY","HKLM\Software\AudiAG\InstalledProducts\Audi_JavaSecurityConfig", 64 VbsLog "-----> Reset Java 7u67" DeleteReg "VALUE", "HKLM\Software\ApplicationPacks\JavaInstal", 32 '----- Write Branding Information Dim strRegpath : strRegpath = "HKLM\Software\"&pCustomer&"\InstalledProducts" CreateBrandingInformationExt pName, pVersion, pLang, pRevision, strRegpath VbsLog "Ende Deinstallation" '----- ENDE Deinstallation ----- FinishScript() Sub WriteRegInfo(ErrorLevel) Dim RegRoot RegRoot = "HKLM\Software\AudiAG\InstalledProducts\" & pName WriteReg "SZ",RegRoot & "\Version",pVersion,32 WriteReg "SZ",RegRoot & "\Revision",pRevision,32 WriteReg "SZ",RegRoot & "\Language",pLang,32 If UBound(errorList0)>=0 Then WriteReg "SZ",RegRoot & "\ErrorLevel",Join(errorList0,","),32 Else WriteReg "SZ",RegRoot & "\ErrorLevel",ErrorLevel,32 End If End Sub Function CheckProduct2(ProductCode) Dim objInstaller Set objInstaller = WScript.CreateObject("WindowsInstaller.Installer") ret = objInstaller.ProductState(ProductCode) If ret = 5 Then CheckProduct2 = True Else CheckProduct2 = False End If End Function Sub Uninstall(Code1,Code2,Start,Ende,Name,Exception) Dim j,jf,s1,s2 For j=Start To Ende If j<10 Then jf="0" & j Else jf=j If j=Exception And CheckFile(winDir & "\SW-Source\Java-Flags\Java_1.6.0_" & jf & ".flag") Then VbsLog "Flag-File found: " & winDir & "\SW-Source\Java-Flags\Java_1.6.0_" & jf & ".flag" VbsLog "Skip uninstall Java 1.6.0_" & jf bRemoveControlPannel = False Else If Not IsNull(Code1) Then s1=Replace(Code1,"[0]",jf) If CheckProduct2(s1) Then UninstallProduct2 Name & jf,s1 End If If Not IsNull(Code2) Then s2=Replace(Code2,"[0]",jf) If CheckProduct2(s2) Then UninstallProduct2 Name & jf,s2 End If End If Next End Sub Function UninstallProduct2(Name,ProductCode) Dim objInstaller,UninstLogName UninstLogName = LogDir & "Uninst_" & Name & ".log" Const msiInstallStateUnknown = -1 'The product is neither advertised or installed. Set objInstaller = WScript.CreateObject("WindowsInstaller.Installer") If objInstaller.ProductState(ProductCode) <> msiInstallStateUnknown Then VbsLog "Uninstall " & Name & ": " & ProductCode VbsLog "+ ProductName: " & objInstaller.ProductInfo(ProductCode, "ProductName") VbsLog "+ Version: " & objInstaller.ProductInfo(ProductCode, "VersionString") VbsLog "+ Publisher: " & objInstaller.ProductInfo(ProductCode, "Publisher") run "Uninstall","msiexec.exe /x " & ProductCode & " /qn /norestart /lvoicewarmup """ & UninstLogName & """", "0,1605,3010" UninstallProduct2 = True Else VbsLog "Information | Uninstall Function:" & Name & " is not installed " & ProductCode UninstallProduct2 = False End If End Function