Forefront UAG Client Components: suppress reboot during uininstall
The original source is an MSI, however the only thing the MSI does is extracting the actual source files to a temporary folder and then it launches a setup.exe file which handles the installation itself. Using msiexec /x on the MSI file doesn't work. But I found that passing /q UNINSTALL=1 to the MSI launches the uninstall procedure. It actually calls this command: "rundll32.exe C:\WINDOWS\DOWNLO~1\WhlMgr.dll,UnInstall 3.1.0 63 0 0 4.0.0". The zero (0) before "4.0.0" means silent, but it reboots PC without warning. When I put it to 1 (not silent), I get a message box with a reboot prompt (yes/no). So there is a way to delay reboot, but I can't find how to trigger it in silent mode. Capturing everything is tricky, it messes up Windows logon...
I can't find anything on the internet, even on Microsoft websites. I already tried parameters as /? etc. on EXE files, but that doesn't work either...
Does someone have experience with this?
Any help is welcome!
Thanks in advance,
Myself, I'd be capturing the extracted set-up as an MSI. I find it most unusual that a Microsoft product embeds an installer EXE in an MSI. I can't recall a single MS product which does that... :(
Compile the following AutoIt code into an EXE:
WinWait("Forefront UAG client components","",1800)
SendKeepActive ("Forefront UAG client components")
WinWait("Uninstalling Forefront UAG client components","",60)
SendKeepActive ("Uninstalling Forefront UAG client components")
Create some sort of script which runs the AutoIt exe then your normal uninstall command line for Forefront UAG (without changing the value to suppress user interaction).
The AutoIt EXE runs in the background and waits until the Forefront uninstaller gets to the bit where the user is prompted to reboot then sends the required keystrokes. A bit of a fudge, I couldn't think of anything better.
The source "WhlClientSetup-Basic.msi" has the following uninstall string
"rundll32.exe C:\Windows\DOWNLO~1\WhlMgr.dll,UnInstall 3.1.0 63 0 1 4.0.0"
the underlined digits shows Hint number of function in the WhlMgr.dll.
for silent uninstall disable the FinishInstall and DllgetClassObject Functions ,
Thus the new Uninstall string will be
"rundll32.exe C:\Windows\DOWNLO~1\WhlMgr.dll,UnInstall 3.1.0 63 0 0 0.0.0"
add it to custom action,shedule it after install finalise in execute imidiate
so that the conversation will remain readable.