Where to add system reboot after program uninstalls...
I am a newb who can't use Google Search... Howdy folks, the More Details contains a.vbs script I crippled together but can't seem to find the method in which to get the script to force system reboot after program uninstallation. Just wasn't getting it... Thanks
'
==============================================================================
Dim objWshShell,objEnv,strPath,strAppName,strAppTask,OSBIT,ExitCode,strCmd,intReturn,objFSO,objFile,DestinationPath,ParentFolderPath,SourcePath,CopyDirFunction,SourceFile,DestinationFile,CopyFileFunction,sPath,iPos,ScriptPath, strInstPath,AllUsersStartMenu
Dim objWMIService, objItem, objService,colListOfServices, strComputer, strService, intSleep, strWinDir, strProgramFiles, processor
' Application Name for event Log
strAppName = "Uninstall Carrot Professional 7.x" 'This is the name of the application.
' =============== Global Objects ==================
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objEnv = objWshShell.Environment("Process")
strInstPath = Replace(Wscript.ScriptFullName, "\" & Wscript.ScriptName, "")
strWinDir = objEnv("WINDIR")
AllUsersStartMenu = objWshShell.SpecialFolders("AllUsersStartMenu")
Set processor =GetObject("winmgmts:\\.\root\cimv2:Win32_Processor='cpu0'")
If (processor.AddressWidth = 32) Then
strProgramFiles = objEnv("PROGRAMFILES")
Else
strProgramFiles = objEnv("PROGRAMFILES(x86)")
End If
' =============== Installation Tasks ==============
' Start
strAppTask = "Start " & strAppName
'wscript.echo Err.Number
ExitCode = Err.Number
LogEvent(ExitCode)
' Task 1 - Uninstall Carrot 7.0
strAppTask = "Uninstall Carrot 7.0"
strCmd = "cmd /c msiexec /x {86868FB7-07DA-4F88-AE5C-48C058854F26} /qn"
'MsgBox(strCmd)
intReturn = objWshShell.run(strCmd, 0, True)
ExitCode = intReturn
If ExitCode <> 0 Then
If ExitCode <> 1605 Then
CleanEnv 1
End If
End If
' Task 2 - Uninstall Carrot 7.5
strAppTask = "Uninstall Carrot 7.5"
strCmd = "cmd /c msiexec /x {8686EC18-6282-4AA9-92AC-2865B972E244} /qn"
'MsgBox(strCmd)
intReturn = objWshShell.run(strCmd, 0, True)
ExitCode = intReturn
If ExitCode <> 0 Then
If ExitCode <> 1605 Then
CleanEnv 2
End If
End If
' Task 3 - Uninstall Carrot PDF Converter
strAppTask = "Uninstall Carrot PDF Converter"
strCmd = "cmd /c msiexec /x {D8E0BC34-B11A-498E-BA01-C23B99E52287} /qn"
'MsgBox(strCmd)
intReturn = objWshShell.run(strCmd, 0, True)
If ExitCode <> 0 Then
If ExitCode <> 1605 Then
CleanEnv 3
End If
End If
' Task 4 - Delete HKCU registry keys
strAppTask = "Delete HKCU registry keys"
strCmd = "CMD /C REG DELETE HKCU\Software\Carrot /f"
'MsgBox(strCmd)
intReturn = objWshShell.run(strCmd, 0, True)
' Task 5 - Delete HKLM registry keys
strAppTask = "Delete HKLM registry keys"
strCmd = "CMD /C REG DELETE HKLM\Software\Carrot /reg:32 /f"
'MsgBox(strCmd)
intReturn = objWshShell.run(strCmd, 0, True)
' Task 6 - Delete User Carrot files
strAppTask = "Delete User Carrot file"
strCmd = "CMD /C IF EXIST " & Chr(34) & "%APPDATA%\Carrot" & Chr(34) & " RD /S /Q " & Chr(34) & "%APPDATA%\Carrot" & Chr(34)
'MsgBox(strCmd)
intReturn = objWshShell.run(strCmd, 0, True)
' Task 7 - Delete User Carrot Upgrade files
strAppTask = "Delete User Carrot Upgrade file"
strCmd = "CMD /C IF EXIST " & Chr(34) & "%APPDATA%\Carrot Upgrade" & Chr(34) & " RD /S /Q " & Chr(34) & "%APPDATA%\Carrot Upgrade" & Chr(34)
'MsgBox(strCmd)
intReturn = objWshShell.run(strCmd, 0, True)
' Task 8 - Delete ProgramFiles files
strAppTask = "Delete ProgramFiles files"
strCmd = "CMD /C IF EXIST " & Chr(34) & strProgramFiles & "\Carrot" & Chr(34) & " RD /S /Q " & Chr(34) & strProgramFiles & "\Carrot" & Chr(34)
'MsgBox(strCmd)
intReturn = objWshShell.run(strCmd, 0, True)
' Task 9 - Delete ProgramData files
strAppTask = "Delete ProgramData files"
strCmd = "CMD /C IF EXIST " & Chr(34) & "C:\ProgramData\Carrot" & Chr(34) & " RD /S /Q " & Chr(34) & "C:\ProgramData\Carrot" & Chr(34)
'MsgBox(strCmd)
intReturn = objWshShell.run(strCmd, 0, True)
' Task 10 - Delete Public files
strAppTask = "Delete ProgramData files"
strCmd = "CMD /C IF EXIST " & Chr(34) & "C:\Users\Public\Documents\Carrot" & Chr(34) & " RD /S /Q " & Chr(34) & "C:\Users\Public\Documents\Carrot" & Chr(34)
'MsgBox(strCmd)
intReturn = objWshShell.run(strCmd, 0, True)
' Exit
Set objWshShell = Nothing
Set objFSO = Nothing
Set objENV = Nothing
WScript.Quit(0)
'=====================================================
' FUNCTIONS -- DO NOT DELETE OR MODIFY
'=====================================================
Function FolderExists(strPath)
'checks if file (strpath) exists and return true if it does, False if it doesn't
If objFSO.FolderExists(strPath) Then
FolderExists = TRUE
Else
FolderExists = FALSE
End If
End Function
Function FileExists(strPath)
'checks if file (strpath) exists and return true if it does, False if it doesn't
If objFSO.FileExists(strPath) Then
FileExists = TRUE
Else
FileExists = FALSE
End If
End Function
Function LogEvent(ExitCode)
If ExitCode = "0" OR ExitCode = "3010" OR ExitCode = "" Then
objWshShell.LogEvent 0, strAppName & " - Task: " & strAppTask & " - SUCCESSFUL"
Err.Clear
Else
objWshShell.LogEvent 1, strAppName & " - Task: " & strAppTask & " - FAILED. Exit Code: " & ExitCode
Wscript.Quit(ExitCode)
End If
End Function
Function CopyDir(SourcePath,DestinationPath)
Const OverWriteFiles = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(wscript.ScriptFullName)
ParentFolderPath = objFSO.GetParentFolderName(objFile)
'MsgBox SourcePath
'MsgBox DestinationPath
objFSO.CopyFolder SourcePath , DestinationPath , OverWriteFiles
End Function
Function CopyFile(SourceFile,DestinationFile)
Const OverWriteFiles = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(wscript.ScriptFullName)
ParentFolderPath = objFSO.GetParentFolderName(objFile)
sPath = DestinationFile ' Trailing \ is required
iPos = InStr(4, sPath, "\", 0) ' Skip drive letter check
While(iPos <> 0)
If(Not(objFSO.FolderExists(Left(sPath, iPos)))) Then
objFSO.CreateFolder(Left(sPath, iPos))
End If
iPos = InStr(iPos+1, sPath, "\", 0)
Wend
objFSO.CopyFile SourceFile , sPath , TRUE
End Function
Sub CleanEnv(intExitCode)
On Error Resume Next: Err.Clear
If bDEBUG Then Wscript.Echo "Debugging Exit Code: " & intExitCode
LogEvent(intExitCode)
Set objWshShell = Nothing
Set objFSO = Nothing
Set objENV = Nothing
WScript.Quit(intExitCode)
End Sub
2 Comments
[ + ] Show comments
-
Errrrr...why not use the .Run method to run 'shutdown.exe', which is part of Windows XP and upwards? - anonymous_9363 10 years ago
-
Hello - tried replacing WScript.Quit(0) with c:\windows\system 32\shutdown -r -t 5 but received a line/character error. Not sure what or where you were referring to Thanks. - rbell96k 10 years ago
Answers (0)
Please log in to answer
Be the first to answer this question