Jump to content

kgee

Member
  • Posts

    8
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    France

About kgee

kgee's Achievements

0

Reputation

  1. About the changelog... hell... my windows is not needing a reinstallation for now My point was that even MS developers were unable to track correctly the minor build number between the DLL and its INF. Or maybe what you are labeling "one tiny inconsistency" is a feature and not a bug ? Today, I've seen an updated muweb_site.cab file, embedding the correct INF... Merry Xmas ! PS @atolica :
  2. My computer strongly disagrees with you : %windir%\System32\muweb.dll is version 7.2.6001.788. %windir%\Downloaded Program Files\muweb.inf says FileVersion=7,2,6001,784 Microsoft Update site is working well AFAICT. @ DarkShadows : the changelog seems interesting...
  3. Hmmm... When I said « aren't deleting/renaming/moving ANY exe file », I were obviously (at least for me) talking about files present on disk before execution of the script. If the downloaded package is found (WindowsXP-KB905474-ENU-x86-Standalone.exe size 1,536,552 bytes, as you said), the command line used : START %KB905474% /Q /T:Z:\TEMP /C:"WgaNotifyPackageStandalone.exe /Q /X:Z:\TEMP" will delete WgaNotifyPackageStandalone.exe as soon as it extracted its own contents. And that's Microsoft way of doing, not mine... You might want to run this command line to integrate the package in an install source : START %KB905474% /Q /T:Z:\TEMP /C:"WgaNotifyPackageStandalone.exe /passive /integrate:X:\path\to\winxp\cd" This will correctly integrate the package (found in X:\path\to\winxp\cd\I386\SVCPACK\WgaNotify.exe), but the temporary file WgaNotifyPackageStandalone.exe (which is in fact the same as X:\path\to\winxp\cd\I386\SVCPACK\WgaNotify.exe) will be deleted from Z:\TEMP by the first package (WindowsXP-KB905474-ENU-x86-Standalone.exe size 1,536,552 bytes) as soon as the integration ended. In other words, the package that takes /T: /C: switches understand /T as a specification for a temporary folder (other than the default), and /C as a command to run with/on the extracted contents. If /C is used and specifies a valid command, the temporary folder is cleaned up after that command as finished. LCC_FIX2.CMD is directly using that "auto-clean-up" feature (noticed how Z:\TEMP appears twice ?) Finally, as opposed to /T, which specifies a temporary folder ; the /X switch on the other package specifies a folder to extract contents to. That's not the same logic (hence "Type 1 hotfix" and "Type 2 hotfix"), thus one should use each package differently. Are you OK or KO with my explanation ? Do you see why its pointless to keep the WgaNotifyPackageStandalone.exe by its own ? (like having a CD and a CD case... no need to keep the CD somewhere and the case elsewhere, unless you like scratched CDs) Which one should I check ? LCC_FIX.CMD or LCC_FIX2.CMD ? LCC_FIX(2) is directly calling DarkShadows' script (MSDBuild.exe), which is (by design) overwriting the first package with the second. (hence the bug you found : when i wrote LCC_FIX, it was after having used MSDBuild.exe once, thus the first package was gone). OMG ! I might as well re-write the full MSDBuild.exe, but it would be scriptware piracy of DarkShadows' genuine idea...... hey ! look, there's Melinda Gates knocking at your door !
  4. The extraction proccess is not working. I substitute this: ECHO. ECHO Extracting WGA 905474 package... START "" /I /WAIT /LOW %KB905474% /Q /X:%WGA% with this: ECHO. ECHO Extracting WGA 905474 package... FOR /F %%I IN ('CD') DO START "" /I /WAIT /LOW %KB905474% /T:%%I\%WGA% /C START "" /I /WAIT /LOW .\%WGA%\WgaNotifyPackageStandalone.exe /X:.\%WGA%% /Q for your script to work. That issue is impossible to fix for me, but I will try... DarkShadows made his script to extract the Type 1 package (taking /Q /T: /C: switches), take the extracted executable (which takes /Q /X: switches) and moves it over the Type 1 package. When LCC_FIX.CMD is launched, it has no way at all to guess what switches to use. But the way you "fixed" that is ugly. the /C: switch is meant to embed a custom "install" command, which in our precise case should be an extraction command. You have the %CD% env. var. to replace your FOR loop. The following code works in both cases (Type 1 or Type 2 file), and with the help of the /Q switch displays no warning popup AFAICT : ECHO Extracting WGA 905474 package... START "" /I /WAIT /LOW %KB905474% /Q /T:%CD%\%WGA% /C:"WgaNotifyPackageStandalone.exe /Q /X:%CD%\%WGA%" IF NOT EXIST %WGA%\legitcheckcontrol.dll START "" /I /WAIT /LOW %KB905474% /Q /X:%CD%\%WGA% There is a more elegant way to do, by first guessing the type. But this needs an external tool. LCC_FIX2.CMD My two scripts (LCC_FIX.CMD and LCC_FIX2.CMD) aren't deleting/renaming/moving ANY exe file. They are extracting the contents to a temp folder then delete that temp folder.
  5. Ans1: Well, I did not, then I did, then I did not... I think I will, since I downloaded it Ans2: The answer is "Yes"... but everything works fine without installing it.
  6. Same problem than atomicmaniac here, but i have a workaround. LCC_FIX.CMD must be in same folder than MSDBuild.exe, along with other files downloaded by Windows Update Downloader. @TITLE LCC_FIX.CMD - Helper Script for DarkShadows' Great Script @ECHO OFF @SETLOCAL ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION CLS ECHO. ECHO LCC_FIX.CMD - Helper Script for DarkShadows's Great Script ECHO. ECHO The Mess : ECHO LegitCheckControl.dll in the LegitCheckControl.cab archive ECHO is an outdated version : 1.7.69.2 ECHO The one inside the KB905474 exe package is 1.8.31.9 ECHO [ at the time of writing : 2008/Nov/10 ] ECHO. ECHO The Problem : ECHO MSDBuild.cmd is using the outdated one inside the .cab. ECHO. ECHO The Result : ECHO You get a nag popup during setup which defeats the whole thing. ECHO [ unless you install the KB905474 exe **AFTER** MSDownloads.exe ] ECHO. ECHO The Rock-Stupid Workaround implemented here : ECHO Use the new DLL from the EXE package to recreate a .cab ECHO archive [digital signature of the .cab is lost]. ECHO Then, launch MSDBuild.exe as you are used to. ECHO. PAUSE CD /D "%~dp0" SET KB905474= FOR %%g IN (*905474*.exe) DO SET KB905474=%%~nxg IF NOT DEFINED KB905474 ( ECHO You need the KB905474 exe package. GOTO:EOF ) REM one and only one backup of LCC.cab IF EXIST LegitCheckControl.cab IF NOT EXIST old_LegitCheckControl.cab REN LegitCheckControl.cab old_LegitCheckControl.cab IF EXIST LegitCheckControl.cab DEL/F/A/Q LegitCheckControl.cab SET LCC=LCC%RANDOM% SET WGA=WGA%RANDOM% MD %LCC% %WGA% ECHO. ECHO Extracting WGA 905474 package... START "" /I /WAIT /LOW %KB905474% /Q /X:%WGA% ECHO. ECHO Moving DLL file around... MOVE/Y %WGA%\legitcheckcontrol.dll %LCC%\LegitCheckControl.dll ECHO. ECHO Looking for file version... SET VERSION= FOR /F "tokens=2 delims== " %%v IN ('TYPE %WGA%\update\update.inf ^| FIND /I "PRODUCT_VERSION "') DO SET VERSION=%%~v ECHO Version found in update.inf is %VERSION%. ECHO. ECHO Creating new INF file with version %VERSION:.=,%... ECHO>%LCC%\LegitCheckControl.inf ;DestDir can be 10 for Windows directory, 11 for Windows\System(32) directory, or left blank for the Occache directory. ECHO.>>%LCC%\LegitCheckControl.inf ECHO>>%LCC%\LegitCheckControl.inf [version] ECHO>>%LCC%\LegitCheckControl.inf signature=$CHICAGO$ ECHO.>>%LCC%\LegitCheckControl.inf ECHO>>%LCC%\LegitCheckControl.inf [Add.Code] ECHO>>%LCC%\LegitCheckControl.inf LegitCheckControl.DLL=LegitCheckControl.DLL ECHO.>>%LCC%\LegitCheckControl.inf ECHO>>%LCC%\LegitCheckControl.inf [LegitCheckControl.DLL] ECHO>>%LCC%\LegitCheckControl.inf file-win32-x86=thiscab ECHO>>%LCC%\LegitCheckControl.inf RegisterServer=yes ECHO>>%LCC%\LegitCheckControl.inf clsid={17492023-C23A-453E-A040-C7C580BBF700} ECHO>>%LCC%\LegitCheckControl.inf DestDir=11 ECHO>>%LCC%\LegitCheckControl.inf FileVersion=%VERSION:.=,% ECHO. ECHO Creating DDF for MAKECAB... PUSHD %LCC% ECHO>LCC.DDF .Set Cabinet=on ECHO>>LCC.DDF .Set Compress=on ECHO>>LCC.DDF .Set CompressionType=LZX ECHO>>LCC.DDF .Set CompressionMemory=21 ECHO>>LCC.DDF .Set FolderSizeThreshold=5000000 ECHO>>LCC.DDF .Set MaxDiskSize=CDROM ECHO>>LCC.DDF .Set DiskDirectory1=. ECHO>>LCC.DDF .Set CabinetNameTemplate=LegitCheckControl.cab ECHO>>LCC.DDF %CD%\LegitCheckControl.dll ECHO>>LCC.DDF %CD%\LegitCheckControl.inf ECHO. ECHO Creating CAB archive... DIANTZ/F LCC.DDF || ECHO DIANTZ Failed: "%CD%\LCC.DDF" MOVE/Y .\LegitCheckControl.cab ..\LegitCheckControl.cab POPD ECHO. ECHO Removing temp files... RD/S/Q %LCC% RD/S/Q %WGA% ECHO. ECHO All done. Have a nice day. ECHO. ECHO Press any key to launch DarkShadows' MSDBuild.exe package... PAUSE>NUL IF EXIST MSDBuild.exe START /I .\MSDBuild.exe EXIT/B0 Tested and working... but it covers only LegitCheckControl.dll.
  7. I'd say using a coin would let you reach a decision faster in step 4. Rolling a dice (of six, or twelve, or even twenty faces) lets you add any other "Office" suite to my list, including for example google, or zoho.com, or really any other. My post was no more than a quick-and-(as-you-may-have-noted)-dirty method to get rid of msizap. And that "dumb" way seems to work...? /my2cents
  8. msizap.exe would not identify any orphan MSI/MSP file ; it's meant to cleanup the registry and not the harddisk... quite the opposite of your objective ? You asked for DOS commands ? hmm ? Here is a tested and working batch that will cleanup orphaned MSI/MSP files (i've just made it, and it found 6 MSP to delete on my disk -- thank you for the idea). Additionaly it will delete any TMP files, so be sure to run the batch after a clean reboot, or when you have no installation/uninstallation pending. Important : no backup is made. but you may replace the del/f/a/q command by a move one... @REM ***** copy/paste this in a file named "CleanMSIP.cmd" then run it ***** @echo off REM go to the mess cd/d %systemroot%\Installer REM get all available info from registry reg export HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData UD.reg REM convert Unicode to ASCII and keep only lines containing .ms? type UD.reg | findstr/ri "\.ms." >> UD.txt REM for each file in the folder, check if it's in the list, and delete (only) if not for %%i in (*.msi *.msp) do ( findstr/i %%i UD.txt 1>nul || del/f/a/q %%i ) REM delete some temporary and no more needed files del/f/a UD.reg UD.txt *.tmp Note you need full read/write access to the Installer folder... The abstract is to get the list of the registered (thus valid) MSI/MSP files from the registry, then to identify which files from the disk are not in the list. As a consequence, this batch will only clean the Installer folder, leaving any subfolder untouched. You may modify it to compare the subfolders names with the contents of UD.reg to find orphaned folders. PS: about Office : i don't know the exact process of updates, service packs and hotfixes that may be applied to your son's computer ; but, if it was mine, i would : 1/ uninstall Office 2/ reboot 3/ run the above batch 4/ use a dice to decide between the two solutions below : 5a/ go to www.openoffice.org 5b/ reinstall MSOffice, go to office update site, install first the latest service pack, then any other fix Anyway, running the step n°3 may be enough pain... good luck
×
×
  • Create New...