Simontrobe Posted February 13, 2019 Posted February 13, 2019 Afternoon, I have an application which does not have a silent install and have been tasked with making it install silently so we can deploy it via SCCM. we have a install.bat file that does part of the install but we need to specify the install location and have the install click next a few times through the process. There are also a number of VB Script files that are required to be run to resolve permissions issues. Any help would be very much appreciated. Thanks
Moderators JLogan3o13 Posted February 13, 2019 Moderators Posted February 13, 2019 @Simontrobe welcome to the forum. Without some example of the product name, the bat files, or how the GUI is set up it is difficult to give you concrete advice. "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
Simontrobe Posted February 13, 2019 Author Posted February 13, 2019 Program is : Carestream R4 Below are the 2 files that are needed to be installed - setup.exe has a field that has to be filled with a server name and has a next button that is required to be click a few times. clientinstall/setup.exe DISSuiteSetup6.13.3.2-E.exe also has a field for a server that has to be filled and again has a couple of next boxes to be clicked DISSuiteSetup6.13.3.2-E.exe thanks
Simontrobe Posted February 13, 2019 Author Posted February 13, 2019 23 minutes ago, JLogan3o13 said: @Simontrobe welcome to the forum. Without some example of the product name, the bat files, or how the GUI is set up it is difficult to give you concrete advice. Thanks mate the BAT file deletes 2 registry keys starts the setup.exe for the R4 client install... at this point it is a manual thing.. once that is done the file opens a test file to remind the tech the location to install the app and then opens the DIS exe. We then have 5 ICACLS to grant full permissions to folders, we then run 2 reg files to licence the app and then put the 2 shortcuts on the public desktop in windows7/10 Simon
Moderators JLogan3o13 Posted February 13, 2019 Moderators Posted February 13, 2019 So, the registry keys and the iCACLS can definitely be done in AutoIt. I would suggest starting with the Reg* sections in the help file. As for the install itself, without knowing the client specifics it is hard to say (lots of products come up from a Google of R4 client install). But if you can capture the window and its controls with the AutoIt Window Info Tool (same directory where you installed AutoIt) you should have no trouble. Even if you cannot, you may want to look into the UI Automation thread in the examples forum for more ideas. "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
Simontrobe Posted February 13, 2019 Author Posted February 13, 2019 5 hours ago, JLogan3o13 said: So, the registry keys and the iCACLS can definitely be done in AutoIt. I would suggest starting with the Reg* sections in the help file. As for the install itself, without knowing the client specifics it is hard to say (lots of products come up from a Google of R4 client install). But if you can capture the window and its controls with the AutoIt Window Info Tool (same directory where you installed AutoIt) you should have no trouble. Even if you cannot, you may want to look into the UI Automation thread in the examples forum for more ideas. JLogan your a ledgend this issue has been driving the team I'm on aroudn the bend for a few months now and the supplier is not exactly quick in helping us. R4 is a healthcare application specifically for Dental Surgerys https://www.carestreamdental.com/en-gb/products/practice-management-software/cs-r4/
Moderators JLogan3o13 Posted February 14, 2019 Moderators Posted February 14, 2019 Did you find out if you can capture information from the window with the Window Info Tool? "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
orbs Posted February 14, 2019 Posted February 14, 2019 one might consider building a custom MSI package. the basic concept follows these steps: 1) take a filesystem and registry snapshot. 2) perform manual installation. 3) take a second snapshot. 4) compare the snapshots to determine a list of files and registry changes. 5) compile these changes into an MSI package. there are several automatic tools claiming to do that. none of which i actually used though, but AppDeply Repackager is on my "cool things i need to check out" list. it seems just the thing for you - and if someone does manage to put it to good use, please share your experience. Signature - my forum contributions: Spoiler UDF: LFN - support for long file names (over 260 characters) InputImpose - impose valid characters in an input control TimeConvert - convert UTC to/from local time and/or reformat the string representation AMF - accept multiple files from Windows Explorer context menu DateDuration - literal description of the difference between given dates Apps: Touch - set the "modified" timestamp of a file to current time Show For Files - tray menu to show/hide files extensions, hidden & system files, and selection checkboxes SPDiff - Single-Pane Text Diff
Moderators JLogan3o13 Posted February 14, 2019 Moderators Posted February 14, 2019 As a long-time software packager I will add only that a lot of those tools (AppDeploy among them) capture a lot of background Windows "noise" between snapshots. You would be amazed at how many registry and dll changes happen at any given moment on a machine. Even top of the line for-pay products like AdminStudio have a hard time filtering it all out. If you go this route (not saying it isn't a viable option, it is how I would do it), be prepared to closely look through each of those dll and registry changes and determine whether it is something you want to capture. On a related note, and something humorous now (wasn't at the time), I once helped a customer that was using such a methodology. The packager was less than careful, and captured a key under System\CurrentControlSet on his capture machine, which caused a bunch of BSOD's for his test group. He then set the flag to "delete if present" and deleted that key on a whole lot more. So glad I charge by the hour "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
Simontrobe Posted February 18, 2019 Author Posted February 18, 2019 Thanks for your help with this This is the script I've got to --- RegDelete ( "HKEY_CLASSES_ROOT\TROPHY" ) RegDelete ( "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TROPHY" ) Run(@ScriptDir & '\\SA-APPS-03\update$\Sys2000\ClientInstall\setup.exe') AutoItSetOption('MouseCoordMode', 0) MouseClick($MOUSE_CLICK_PRIMARY, 323, 319, 1) Sleep(10) MouseClick($MOUSE_CLICK_PRIMARY, 24, 247, 1) Sleep(10) MouseClick($MOUSE_CLICK_PRIMARY, 323, 319, 1) Sleep(10) MouseClick($MOUSE_CLICK_PRIMARY, 69, 179, 1) Sleep(10) MouseClick($MOUSE_CLICK_PRIMARY, 323, 319, 1) Sleep(10) MouseClick($MOUSE_CLICK_PRIMARY, 408, 86, 1) Sleep(10) ControlSetText($hWnd, "Choose Folder", "Edit1", "C:\Program Files\KODAK Dental Systems\R4 Clinical+") MouseClick($MOUSE_CLICK_PRIMARY, 150, 270, 1) MouseClick($MOUSE_CLICK_PRIMARY, 323, 319, 1) MouseClick($MOUSE_CLICK_PRIMARY, 323, 319, 1) wait MouseClick($MOUSE_CLICK_PRIMARY, 345, 179, 1) wait MouseClick($MOUSE_CLICK_PRIMARY, 303, 392, 1) MouseClick($MOUSE_CLICK_PRIMARY, 303, 392, 1) ControlSetText($hWnd, "AppUpdate Servers", "ThunderRT6TextBox1", "XGGC-APPS-221") MouseClick($MOUSE_CLICK_PRIMARY, 319, 195, 1) MouseClick($MOUSE_CLICK_PRIMARY, 57, 205, 1) MouseClick($MOUSE_CLICK_PRIMARY, 323, 319, 1)
Simontrobe Posted February 18, 2019 Author Posted February 18, 2019 my code was wrong lol I'm got another way using controlclick
Dwalfware Posted February 18, 2019 Posted February 18, 2019 I would email the company first and ask them if they have a msi or silent install mode?
Simontrobe Posted February 18, 2019 Author Posted February 18, 2019 41 minutes ago, Dwalfware said: I would email the company first and ask them if they have a msi or silent install mode? We have and they don't ... aparently its on there fevelopment path but not soon.... I've got lots further now Got a script that actually works ! Script : RegDelete ( "HKEY_CLASSES_ROOT\TROPHY" ) RegDelete ( "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TROPHY" ) Run ("location of setup.exe") sleep (2000) WinWaitActive ("R4 Clinical+ - InstallShield Wizard") ControlClick ( "R4 Clinical+ - InstallShield Wizard" , "Welcome to the InstallShield" , "Button3" ) sleep (500) ControlClick ( "R4 Clinical+ - InstallShield Wizard" , "I &accept the terms of the license agreement" , "Button6" ) sleep (1000) ControlClick ( "R4 Clinical+ - InstallShield Wizard" , "&Next" , "Button2" ) sleep (1000) ControlClick ( "R4 Clinical+ - InstallShield Wizard" , "Client" , "Button6" ) sleep (1000) ControlClick ( "R4 Clinical+ - InstallShield Wizard" , "&Next" , "Button2" ) sleep (2000) ControlClick ( "R4 Clinical+ - InstallShield Wizard" , "&Change..." , "Button5" ) Sleep (2000) ControlSetText ( "Choose Folder" , "C:\Program Files\Carestream Dental Ltd\R4 Clinical+", "Edit1", "C:\Program Files\KODAK Dental Systems\R4 Clinical+" ) sleep (1000) ControlClick ( "Choose Folder" , "OK" , "Button1" ) Sleep (500) ControlClick ( "R4 Clinical+ - InstallShield Wizard" , "&Next" , "Button2" ) Sleep (500) ControlClick ( "R4 Clinical+ - InstallShield Wizard" , "&Next" , "Button2" ) Sleep (2000) ControlClick ( "CS R4 Clinical+ - Installation Wizard" , "&Next" , "ThunderRT6CommandButton5" ) Sleep (10000) ControlClick ( "CS R4 Clinical+ - Installation Wizard" , "&Next" , "ThunderRT6CommandButton3" ) Sleep (500) ControlClick ( "CS R4 Clinical+ - Installation Wizard" , "&Next" , "ThunderRT6CommandButton3" ) sleep (3000) ControlSetText ( "AppUpdate Servers" , "", "ThunderRT6TextBox1", "server data is stored (SQL)" ) Sleep (1000) ControlClick ( "AppUpdate Servers" , "&OK" , "ThunderRT6CommandButton2" ) Sleep (500) ControlClick ( "Restart Windows" , "&No" , "Button2" ) Sleep (500) ControlClick ( "R4 Clinical+ - InstallShield Wizard" , "InstallShield Wizard Complete" , "Button2" ) Sleep (500) ControlClick ( "R4 Clinical+ - InstallShield Wizard" , "InstallShield Wizard Complete" , "Button4" )
Simontrobe Posted February 18, 2019 Author Posted February 18, 2019 On 14/02/2019 at 3:34 PM, JLogan3o13 said: As a long-time software packager I will add only that a lot of those tools (AppDeploy among them) capture a lot of background Windows "noise" between snapshots. You would be amazed at how many registry and dll changes happen at any given moment on a machine. Even top of the line for-pay products like AdminStudio have a hard time filtering it all out. If you go this route (not saying it isn't a viable option, it is how I would do it), be prepared to closely look through each of those dll and registry changes and determine whether it is something you want to capture. On a related note, and something humorous now (wasn't at the time), I once helped a customer that was using such a methodology. The packager was less than careful, and captured a key under System\CurrentControlSet on his capture machine, which caused a bunch of BSOD's for his test group. He then set the flag to "delete if present" and deleted that key on a whole lot more. So glad I charge by the hour JLogan - do you know of a way to have AutoIT wait and sence as it were the box appear for the script to then go to the next part and click the button ? Thanks
Earthshine Posted February 18, 2019 Posted February 18, 2019 (edited) it looks like InstallShield. If it is not any type of MSI, then you can record your own silent install file, if you do a setup on a target machine with the /r (for record) parameter. but the fact that they use ThunderRT6 buttons may mean some custom vb6 installer is lauched you run like this from command line setup.exe /r step through install with all options YOU require. after setup finishes, it it will create a new setup.iss file in the Windows directory of the target you just installed it on Now you can copy that setup.iss to your install media folder where the setup.exe lives, then you can script your script to call setup /r and it's DONE. The setup.iss must be in same directory as the setup.exe file. Anyone can then install silent with your custom options selected. and you can write your script easily. that is if it doesn't rely on that custom sub installer, all your responses should be recorded in the iss file. Edited February 18, 2019 by Earthshine My resources are limited. You must ask the right questions
Simontrobe Posted February 20, 2019 Author Posted February 20, 2019 On 18/02/2019 at 6:44 PM, Earthshine said: it looks like InstallShield. If it is not any type of MSI, then you can record your own silent install file, if you do a setup on a target machine with the /r (for record) parameter. but the fact that they use ThunderRT6 buttons may mean some custom vb6 installer is lauched you run like this from command line setup.exe /r step through install with all options YOU require. after setup finishes, it it will create a new setup.iss file in the Windows directory of the target you just installed it on Now you can copy that setup.iss to your install media folder where the setup.exe lives, then you can script your script to call setup /r and it's DONE. The setup.iss must be in same directory as the setup.exe file. Anyone can then install silent with your custom options selected. and you can write your script easily. that is if it doesn't rely on that custom sub installer, all your responses should be recorded in the iss file. Thanks Tried that but there is a non standard boxx that appears to specify the server name and it does not record that
Earthshine Posted February 20, 2019 Posted February 20, 2019 (edited) Use the windows information tool that comes with autoIT and see if you can get the control names on that box that pops up and you may be able to write a script that looks for that control and clicks the button and specifies the servers Oh and to run silent it’s setup /s Once you have the response file. I had made a mistake in my post above Edited February 20, 2019 by Earthshine My resources are limited. You must ask the right questions
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now