|
|
|||||||
Hello see below link for details: (thanks) http://81.17.37.55/board/ultimatebb.php?ubb=get_topic;f=1;t=003748 Problem. The new hotfix from microsoft concerning IE 5.0 5.5 6.0 needs to be applyed. Im using the linked script and its working perfect. Is it possible to determine the installed langue on IE. ? Keyboard langue do not help. \erik |
||||||||
|
|
|||||||
Does this cut it ? $LANG = GETFILEVERSION ("C:\Program Files\Internet Explorer\iexplore.exe","language") -Shawn |
||||||||
|
|
|||||||
Thanks , works perfectly. Here is the code ; Checks location for client call "\\semoheat\packages\script\kix\location.kix" ; Path to MS patchar $path="x:\install\patchar\microsoft\internet explorer\28 March 2002 Cumulative Patch for Internet Explorer\" ; REM ** Local variables in use by this function are: Dim $RC1, $RC2, $RC3, $TmpLen1, $TmpLen2, $TmpLen3 Dim $IEBuild, $IEFullVer, $IEMajor, $IEMinor, $IESubBd, $IEVer, $IEName $RC1 = ReadValue ("HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer", "Build") ; REM ** IE3 onward (s/b build only, or xxxxx.xxxx) $RC2 = ReadValue ("HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer", "Version") ; REM ** IE4 or later only (s/b xx.xx.xxxx.xxxx) $RC3 = ReadValue ("HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer", "IVer") ; REM ** IE3 only (s/b xxx) $TmpLen1 = Len ($RC1) $TmpLen2 = Len ($RC2) $TmpLen3 = Len ($RC3) Select Case ($TmpLen1 = 10) AND (SubStr ($RC2, 4, 1) = ".") ; REM ** IE6 - MS error w/IE 6 where minor id is single charcter $IEMajor = SubStr ($RC2, 1, 1) $IEMinor = SubStr ($RC2, 3, 1) + "0" $IEBuild = SubStr ($RC2, 5, 4) $IESubBd = SubStr ($RC2, 10, $TmpLen2-9) $IEFullVer = $IEMajor + "." + $IEMinor + "." + $IEBuild + "." + $IESubBd Case ($TmpLen1 = 14) OR ($TmpLen2 >= 11) ; REM ** IE6/IE5/IE4 - 14 is MS error w/IE 5.01 SP1 for Win2K, >=11 for various IE5, IE4 versions not 14-character $IEMajor = SubStr ($RC2, 1, 1) $IEMinor = SubStr ($RC2, 3, 2) $IEBuild = SubStr ($RC2, 6, 4) $IESubBd = SubStr ($RC2, 11, $TmpLen2-9) $IEFullVer = $RC2 Case ($TmpLen1 >= 3) AND ($RC3 = "103") ; REM ** IE3 - the build number only $IEMajor = "4" $IEMinor = "70" $IEBuild = "$RC1" $IESubBd = "" $IEFullVer = $IEMajor + "." + $IEMinor + "." + $IEBuild Case (1) $Status = $Skip $wri = WriteLine (1, "Verified IE not installed." + $CR) Return EndSelect ; REM ** Determine exact version installed on system, set shorthand value to group 'like' versions (See MS TechNet article Q164539) Select Case ($IEFullVer >= "6.00.2600.0000") $IEVer = "6.00" $IEName="Internet Explorer 6" $LANG = GetFileVersion ("%PROGRAMFILES%\Internet Explorer\iexplore.exe","language") If $LANG="041DSwedish" Shell "$path\swe\6.0\q319182.exe /q" goto slut EndIf Shell "$path\eng\6.0\q319182.exe /q" Case ($IEFullVer >= "5.50.4807.2300") $IEVer = "5.50 SP2" $IEName="Internet Explorer 5.5 Service Pack 2" $LANG = GetFileVersion ("%PROGRAMFILES%\Internet Explorer\iexplore.exe","language") If $LANG="041DSwedish" Shell "$path\swe\5.5 SP2\q319182.exe /q" goto slut EndIf Shell "$path\eng\5.5 SP2\q319182.exe /q" Case ($IEFullVer >= "5.50.4522.1800") $IEVer = "5.50 SP1" $IEName="Internet Explorer 5.5 Service Pack 1" $LANG = GetFileVersion ("%PROGRAMFILES%\Internet Explorer\iexplore.exe","language") If $LANG="041DSwedish" Shell "$path\swe\5.5 SP1\q319182.exe /q" goto slut EndIf Shell "$path\eng\5.5 SP1\q319182.exe /q" Case ($IEFullVer >= "5.00.3315.1000") $IEVer = "5.01 SP2" $IEName="Internet Explorer 5.01 SP2 (Windows 2000)" $LANG = GetFileVersion ("%PROGRAMFILES%\Internet Explorer\iexplore.exe","language") If $LANG="041DSwedish" Shell "$path\swe\5.01 SP2\q319182.exe /q" goto slut EndIf Shell "$path\eng\5.01 SP2\q319182.exe /q" Case ($IEFullVer >= "5.00.3314.2101") $IEVer = "5.01 SP2" $IEName="Internet Explorer 5.01 SP2 (Windows 95/98 and Windows NT 4.0)" $LANG = GetFileVersion ("%PROGRAMFILES%\Internet Explorer\iexplore.exe","language") If $LANG="041DSwedish" Shell "$path\swe\5.01 SP2\q319182.exe /q" goto slut EndIf Shell "$path\eng\5.01 SP2\q319182.exe /q" EndSelect :slut ? $IEFullVer+" "+$IEName Sleep 5 Exit *** Only one problem left, get the client to reboot when finished Thanks for the quick reply Regards \erik |
||||||||
|
|
|||||||
that you can do with change... change your shell call to run. then after the run statement: do sleep 1 until not setfocus("Microsoft Internet Explorer Update") $x=sendkeys("{enter}") exit 0 this waits until the question for reboot comes up, answers yes and exits kix. the setfocus text used is probably dependent on the language packet used. I used the english one. cheers, |
||||||||
|
|
|||||||
Why not use the following under Windows NT/2K/XP: code:$retcode=shutdown('','Rebooting '+@WKSTA+' after installing mandatory software updates',10,1,1) |
||||||||
|
|
|||||||
Got a little problem with both suggestion lonkero: Same text is displayed during installation phase (file copying) as when it has finished. Changed the text to the following [swedish] Do Sleep 1 Until NOT SetFocus("Datorn måste startas om innan inställningarna börjar gälla") $x=SendKeys("{enter}") Exit 0 then it works / thanks sealeopard: How to tell the shutdown command to wait, untill the installtion is finished ? Regards \erik |
||||||||
|
|
|||||||
he forgot to try it out before replying. but good to here that it works. cheers, |
||||||||
|
|
|||||||
The folowing line will install the patch and return to the scritp only after completion code:I use the shotdown command quite extensively in my maintenance script. Based on a flag the reboot routine will be triggered at the end of the script. you can find my reboot routine here: RebootWarning() at http://kixtart.org/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=12&t=000140Shell '%COMSPEC% /e:1024 /c START /MIN /WAIT "'+$path+'\eng\5.01 SP2\q319182.exe" /Q:A /R:N /N:V' [ 05 April 2002, 16:27: Message edited by: sealeopard ] |
||||||||
|
|
|||||||
the reboot routine sounds good. Do you have a sample on the *.ini file. Kix always wait until the "run" "shell" command has ended. Is it possible to get all fixes etc to be installed, and then make one reboot. ex code [first install] ; Checks location of the computer call \\semoheat\packages\script\kix\location.kix ; Adding %COMPUTERNAME% to "My Computer" WriteValue("HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}","LocalizedString","Den här Datorn %COMPUTERNAME%","REG_SZ") ;Converting file system to NTFS SHELL "%COMSPEC% /c convert c: /FS:NTFS" ; Compatwrk batch file addes to RunOnce WRITEVALUE ( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", "Compatwrk", "\\semoheat\packages\script\cmd\Compatwrk.cmd", "REG_SZ" ) ; Installing Centuri Uppdated version SHELL "x:\install\centuri\Centuri4.2.8.exe" ; Installing Hotfix for IE 6.0 (q319182.exe) run "x:\install\patchar\microsoft\internet explorer\28 March 2002 Cumulative Patch for Internet Explorer\swe\6.0\q319182.exe /q" ; Installing LANDesk SHELL "\\semoheat\ldlogon\ipsetup.bat" * Several of this "actions" requires user input. !! One major reboot would be nice Can I force(sendkey) to a Dos window (convert:NTFS) ? A lot of can I? \erik |
||||||||
|
|
|||||||
sealeopard, how can you say that without trying. I tryid and it didn't work that way... sorry... |
||||||||
|
|
|||||||
Microsoft Q patches for IE come with the standard MS installer switches. Generally, you can append the command lines like this: q319182 /Q:A /R:N /N:V The /Q:A is for quiet administrative mode which means NO prompts OR dialogue boxes in most cases. The /R:N tells it to never reboot. The /N:V forces the install in case the active setup says it's installed already although file versions may have changed. I use it this way and then can force a reboot with the script later on. BrianTX |
||||||||
|
|
|||||||
If you're curious about more command line switches for customizing the way the install package runs, you can find it in microsoft knowledgebase article Q197147. http://support.microsoft.com/default.aspx?scid=kb;en-us;Q197147 I hope this helps. BrianTX |
||||||||
|
|
|||||||
Lonkero: Where did I go wrong in that piece of code? The first line is just an enhanced version of what cellnet wrote in his code. I just preceeded it with '%COMSPEC% /e:1024 /c START /MIN /WAIT ' to force Kixtart to absolutely wait until the patch install is finished. The location of the patch is in double quotes in case $path contains a pathname with spaces in it. Which part didn't work for you? |
||||||||
|
|
|||||||
I was thinking about using convert.exe without forcing the user to answer "y"... This might work: 1. Create a text file answer.txt 2. put just a "y" and a carriage return in it. 3. execute the line as follows: convert.exe D: /FS:NTFS < answer.txt I've found that you can often create an answer file that works so long as the command doesn't clear the keyboard buffer before asking for user input. Brian |
||||||||
|
|
|||||||
thanks brian where do you put the answer file ? \erik |
||||||||
|
|
|||||||
sealeopard, your code wasn't wrong in syntax way, but the exe does not quit without user input. that's wrong. but if you add - thanks to brian - switch /R:N to end of the line it will work just as you said. cheers, |
||||||||
|
|
|||||||
Thanks, Lonkero. I wasn't aware of the new silent install syntax. I thought it was still just a /q for silent install of fixes, but I hadn't used it in a long time. |
||||||||
|
|
|||||||
thanks everbody final script: Case ($IEFullVer >= "5.00.3314.2101") $IEVer = "5.01 SP2" $IEName="Internet Explorer 5.01 SP2 (Windows 95/98 and Windows NT 4.0)" $LANG = GetFileVersion ("%PROGRAMFILES%\Internet Explorer\iexplore.exe","language") If $LANG="041DSwedish" shell "$path\swe\5.01 SP2\q319182.exe /Q:A /R:N /N:V" Goto slut EndIf shell "$path\eng\5.01 SP2\q319182.exe /Q:A /R:N /N:V" Goto slut EndSelect :slut ; Startar om datorn. If @INWIN=1 $retcode=Shutdown('','Rebooting '+@WKSTA+' after installing mandatory software updates',10,1,1) Else ; canot get anything else to work reliably on Windows 9x $retcode=runonce('0-Reboot','%WINDIR%\shelldll SHELL.DLL,RestartDialog',1) EndIf Exit * Looks like the "shell" command waits until its finished before proceding * Have a nice weekend \erik |
||||||||
|
|
|||||||
Erik Your statement: goto slut is interesting. Not too sure about your neck of the woods, but around here, this statement has some very funny implications. Kix on my brother ! -Shawn |
||||||||
|
|
|||||||
Erik: Two comments: If $path contains a pathname with spaces in it then your path statement might break. It would be better to have the complete filename enclosed in double quotes to prevent this from possibly happening. This would be safe to use: code:Secondly, yes, the SHELL command is supposed to wait for the shelled out command to finish before continuing as is documented in the manual. Unfortunately, I had a couple of instances where install routines consisted of multiple nested executables in which case the SHELL command failed to wait for the last executable to finish. It waited for the first one to finish. The 'START /MIN /WAIT' forces the shell command to wait independent of how many nested executables there are.Shell '"'+$path+'\swe\5.01 SP2\q319182.exe" exe /Q:A /R:N /N:V' [ 05 April 2002, 17:58: Message edited by: sealeopard ] |
||||||||
|
|
|||||||
Jens, You'll need to change your signature... what with this single outie/double innie crusade. I thought I was the the only advocate of that. Wanna start a fan club? |
||||||||
|
|
|||||||
Sign me up |
||||||||
|
|
|||||||
;shawn Sometimes kix is not enough. \€rik |