home *** CD-ROM | disk | FTP | other *** search
/ ftp2.jacobs.com / 2015.02.ftp2.jacobs.com.tar / ftp2.jacobs.com / pub / MicrosoftUAG / UAG2010_ClientSetup.msi / Binary.UninstallCommand < prev   
Text File  |  2014-06-26  |  3KB  |  84 lines

  1.  
  2. 'Install/Ininstall mode definition bits
  3. '#define INSTALL_MODE_SHOW_UI            0x00000001     
  4. '#define INSTALL_MODE_FORCE_REBOOT       0x00000002     
  5. '#define INSTALL_MODE_SUPRESS_REBOOT     0x00000004
  6.  
  7. const HKEY_LOCAL_MACHINE = &H80000002
  8. strComputer = "."
  9.  
  10. on error resume next
  11.  
  12. Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
  13. strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Forefront UAG endpoint components 3.1.0"
  14. strValueName = "UninstallString"
  15.  
  16. 'Get uninstall command from the registry
  17. oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
  18.  
  19. 'if the registry value exists change the command to perform silent uninstall
  20. If len(strValue)>0 Then
  21.     lastBlankPos = InStrRev(strValue, " ")
  22.     If Session.Property("UILevel") > 2 Then 
  23.         ' show UI
  24.         strUninstallCommand = strValue
  25.     ElseIf Session.Property("REBOOT") = "SUPPRESS" OR Session.Property("REBOOT") = "Suppress" Then 
  26.         ' supress reboot
  27.         strUninstallCommand = Left(strValue, lastBlankPos-2) & "4 " & Right(strValue, Len(strValue)-lastBlankPos) 
  28.     ElseIf Session.Property("REBOOT") = "FORCE" OR Session.Property("REBOOT") = "Force" Then
  29.         ' Force reboot w/o the reboot prompt
  30.         strUninstallCommand = Left(strValue, lastBlankPos-2) & "2 " & Right(strValue, Len(strValue)-lastBlankPos)  
  31.     Else
  32.         ' Show reboot prompt
  33.         strUninstallCommand = Left(strValue, lastBlankPos-2) & "0 " & Right(strValue, Len(strValue)-lastBlankPos)  
  34.     End If
  35. End If
  36.  
  37. 'Save an uninstall command as MSI property
  38. If len(strUninstallCommand)>0 Then
  39.     Session.Property("UninstallCommand") = strUninstallCommand
  40. End If
  41.  
  42.  
  43. '===================================================================================
  44. 'Get last installation error from the registry and prepare MSI exit code accordingly
  45. '===================================================================================
  46. 'Silent Install/Uninstall return codes
  47. '#define INST_ERR_OK                         0
  48. '#define INST_ERR_REBOOT_REQUIRED            1
  49. '#define INST_ERR_REBOOT_FORCED              2
  50. '#define INST_ERR_PENDING_UNINSTALL_REBOOT   3
  51.  
  52. const ERROR_INSTALL_FAILURE = 1603
  53. const ERROR_SUCCESS         = 0
  54.  
  55. Function ProcessLastInstallError
  56.     On Error Resume Next
  57.  
  58.     'erase REBOOT property
  59.     Session.Property("REBOOT")=""
  60.     Session.Property("REBOOTPROMPT")="Suppress"
  61.     Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
  62.     strKeyPath = "SOFTWARE\WhaleCom\Client\CompMgr"
  63.     strValueName = "LastInstallError"
  64.  
  65.     'Get uninstall command from the registry
  66.     dwValue = 0
  67.     oReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue
  68.  
  69.     'if the registry value exists perform property changes and return 
  70.     If dwValue>0 Then
  71.         'if error code is 10 or greater there is a real error - return 
  72.         If dwValue>=10 Then
  73.             ProcessLastInstallError=ERROR_INSTALL_FAILURE
  74.             Exit Function
  75.         End If
  76.  
  77.         If dwValue=1 OR dwValue=3 Then
  78.             Session.Property("REBOOT")="ReallySuppress"
  79.         ElseIf dwValue=2 Then
  80.              Session.Property("REBOOT")="Force"
  81.         End If
  82.     End If
  83.     ProcessLastInstallError=ERROR_SUCCESS
  84. End Function