302 lines
11 KiB
Plaintext
302 lines
11 KiB
Plaintext
'-------------------------------------------------------------------
|
||
' Gerd Czaya
|
||
' 01.04.2015
|
||
' Script JavaUninstall 3.0 erweitert,
|
||
' Branding Key wird geschrieben
|
||
' die Detection Methods aller im Java Application Pack <Versionsnummer>
|
||
' 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<6B>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<65>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
|
||
|