Dove vanno gli aggiornamenti di Windows prima di installarli?

Di Rosario Marciano'.

Era da un p di tempo che mi arrovellavo per poter risolvere questo problema. Non  per nulla pratico eseguire un Windows Update classico, n tantomeno lo  scaricarsi le patches una ad una e cliccare su decine di eseguibili, nella speranza di fare un lavoro pulito e corretto. Ecco quindi che qui ci viene in aiuto il vecchio DOS, in abbinamento a procedure previste da Microsoft, ma non certo sbandierate ai quattro venti. Io stesso, pur essendo un OEM Builder, non sono stato edotto in tal senso da pubblicazioni della casa di Redmond, ma ci sono dovuto arrivare attraverso diverse sperimentazioni.

Procedura:

Sul sito di Windows Update, al seguente indirizzo:

http://v4.windowsupdate.microsoft.com/it/default.asp.


Selezionare la voce:

"Catalogo di Windows Update". 
Quindi, andate sul link "Trova aggiornamenti per i sistemi operativi Microsoft".

Sar possibile scegliere gli aggiornamenti disponibili e salvarli in una cartella che potremo chiamare ad esempio "HOTFIXES" (senza virgolette, ovviamente).

Una volta completata l'archiviazione delle patch disponibili, si editer con il Blocco Note un file batch con l'elenco dei comandi eseguibili relativi ad ogni singolo pacchetto di aggiornamento (andr segnato il percorso ed il nome esatto dell'eseguibile). Il file batch, che chiameremo HOTFIXES.bat, dovr essere salvato, al fine di evitare errori nella descrizione della directory, nella stessa cartella ove sono stati archiviati gli aggiornamenti (in questo caso nella cartella HOTFIXES).

Per evitare errori di digitazione e per risparmiare tempo, vi consiglio di posizionarvi su ogni singolo eseguibile, tasto F2, come se volessimo fare Rinomina, selezioniamo il nome del file, control piu' C per Copia, quindi, incollare il nome, seguito dall'estensione .exe all'interno del file batch.

Esempio:

..........................................................................................................
@Echo off

Set INSTDRV=%1

Echo.

Echo Installing Hotfixes...

start /wait %INSTDRV%\HOTFIXES\q311542_WXP_SP1_x86_ENU.exe /Q /N /Z /U

.........................................................................................................

NOTA BENE:

I parametri da far seguire alle righe di comando per gli hotfixes seguono alcune regole che qui di seguito vi elenco...

.........................................................................................................
UPDATE [-u] [-f] [-n] [-o] [-z] [-q] [-l].
 
-U, Modalit automatica
-F, Impone chiusura programmi all'arresto del sistema.
-N, Non effettua copia di backup dei flile per la disinstallazione.
-O, Sovrascrive i file OEM senza chiedere conferma.
-Z, Non riavvia il sistema al termine dell'installazione.
-Q, Modalit silenziosa. Nessuna interazione utente.
-L, Elenca gli aggiornamenti rapidi installati.
.........................................................................................................

/Q, /N, /Z, /U, switch (eseguibili tipo DOS).
oppure:

/Q, /M, /Z, /Q:A, /R:N: switch (eseguibili tipo Windows).

Alcuni pacchetti di installazione presenteranno l'estensione (*.MSI). Questi file adoperano lo switch /QB. Le powertoys richiedono lo switch /s /v/qn , altri come Windows Media Player 9 utilizzano /Q:A /R:N

Altri installers usano lo switch /s per "silenziare" il setup:
 es: Setup.exe /S

Un particolare importante...

E' essenziale rispettare la sequenzialit delle diverse patches, per cui sar necessario, al fine di ridurre i tempi di elaborazione del file batch, crearsi un elenco dettagliato (e sequenziale) degli eseguibili che avremo copiato nella cartella HOTFIXES. Solo successivamente potremo creare eventuali sottodirectories e trascriverle nel file cmd o bat.

E potr essere cos...

Potremo creare il nostro file batch (*.bat) o (*.cmd), che potr essere simile a questo:

CLS

@echo off

ECHO.

ECHO Installing DirectX 9.0b

ECHO Please wait...

start /wait %INSTDRV%\HOTFIXES\DirectX9\dxsetup.exe /windowsupdate

ECHO Installing Windows Media Player 9

ECHO Please wait...

start /wait %INSTDRV%\HOTFIXES\WMP9\MPSetupXP.exe /Q:A /R:N

ECHO Installing DirectX9-KB819696-x86-ITA...

start /wait %INSTDRV%\HOTFIXES\DirectX9-KB819696-x86-ITA.exe /Q:A /R:N

ECHO Installing .NET Framework v1.1

ECHO Please wait...

start /wait %INSTDRV%\HOTFIXES\NetFramework\dotnetfx /Q:A /R:N

ECHO Installing .NET Framework patch...

start /wait %INSTDRV%\HOTFIXES\NetFramework\NDP10_SP_Q322036_It /Q:A /R:N

ECHO Installing js56nit...

start /wait %INSTDRV%\HOTFIXES\js56nit.exe /Q:A /R:N

ECHO Installing msjavwu...

start /wait %INSTDRV%\HOTFIXES\msjavwu.exe /Q:A /R:N

ECHO Installing msxml4qfe...

start /wait %INSTDRV%\HOTFIXES\msxml4qfe.exe /Q:A /R:N

ECHO Installing NDP10_SP_Q322036_It...

start /wait %INSTDRV%\HOTFIXES\NDP10_SP_Q322036_It.exe /Q:A /R:N


Il sottoscritto non  responsabile per gli eventuali danni che le informazioni contenute in queste pagine (se incorrettamente applicate) possono arrecare al vostro sistema.

(c) Rosario Marcian.

Aggiungo con piacere un metodo alternativo propostomi recentemente da Gatz1980. Egli descrive un metodo
alternativo che fa uso di un piccolo, ma geniale programma java. Il file  scaricabile da qui:

http://www.fast-service-informatica.com/JAVAInstallHotFixes.zip.

Qui di seguito il testo:

Questo programma in java che ho scritto tempo fa (veramente una sciocchezzuola) crea automaticamente il file .bat per installare le patch mettendole in ordine cronologico (da timestamp su xml) in questo modo:

@ECHO OFF

ECHO Installing: "Aggiornamento della protezione per Microsoft Windows XP (KB828035)"...

"D:\WindowsUpdate\WU\Software\it\com_microsoft.windowsxp\x86WinXP\com_microsoft.828035_WXP_SP2_WinSE_50219\WindowsXP-KB828035-x86-ITA.exe"

IF %ERRORLEVEL% GTR 0 ECHO ...not installed.

IF %ERRORLEVEL% EQU 0 ECHO ...installed.

ECHO Installing: "814078 - Aggiornamento della protezione (Windows Jscript versione 5.6, Windows 2000, Windows XP)"...

"D:\WindowsUpdate\WU\Software\it\com_microsoft.windowsxp\x86WinXP\com_microsoft.Jscript_win2K_XP_56_6003\js56nit.exe"

IF %ERRORLEVEL% GTR 0 ECHO ...not installed.

IF %ERRORLEVEL% EQU 0 ECHO ...installed.

...ecc...

Descrizione:

1. Assumendo che gli hotfixes siano salvati nella cartella X:\WindowsUpdate, copiare Install.class nella cartella X:\WindowsUpdate\WU, che dovrebbe contenere anche il file iuhist_catalog.xml (necessario all'applicazione java).

2. Posizionandosi col prompt dei comandi nella cartella X:\WindowsUpdate\WU, eseguire il programma digitando: C:\j2sdk1.4.1\bin\java.exe Install (ammesso che tale sia la cartella nella quale  installato il java). Esso creer nella cartella corrente il file InstallHotFixes.bat.

3. Eseguire InstallHotFixes.bat.

4. Durante l'installazione occorre fare in modo di non riavviare il Sistema Operativo alla fine di ogni pacchetto. Per fare ci solitamente occorre rispondere no alla richiesta specifica di reboot, oppure togliere il segno di spunta dalla casella "Riavvia il computer dopo l'installazione";

5. Alla fine, nella finestra DOS del batch in esecuzione comparir la scritta "Installazioni terminate". A questo punto chiudere tale finestra e riavviare.

Osservazioni:

a. Il programma estrae da iuhist_catalog.xml tutte le patch scaricate nelle ultime 12 ore a partire dall'ultima, se si desidera cambiare tale parametro occorre modificare il sorgente.

b. Se si desidera includere nell'installazione patch gi scaricate, occorre selezionarle dal catalogo di WindowsUpdate e dare inizio al download. Il programma si accorger che i file sono gi presenti sul disco, e quindi non li scaricher nuovamente, ma essi rientreranno comunque nella lista delle patch scaricate in quel momento, e quindi verranno inclusi in InstallHotFixes.bat.

c.  possibile utilizzare Install.bat per compilare ed eseguire Install.java in un unico passaggio. Ovviamente occorre prima editare Install.bat per sistemare i percorsi.

Gatz1980.

Rosario Marciano'.

