[GUIDA] Script per integrare gli aggiornamenti nelle ISO di Windows 7
Ciao a tutti,
ho creato uno script per tenere aggiornate le ISO di Windows 7 e Windows 8 (x64 e x86) integrando tutti gli aggiornamenti rilasciati. Link: https://onedrive.live.com/redir?resi...nt=file%2c.zip Per utilizzarlo è necessario scompattare l'archivio in un percorso che non contenga spazi (es: C:\IsoUpdater), copiare uno o più file ISO nella cartella \Iso e lanciare il file IsoUpdater.cmd con privilegi di amministratore. FUNZIONAMENTO DELLO SCRIPT Verifica dei privilegi dell'utente Per eseguire lo Strumento gestione e manutenzione immagini distribuzione (dism.exe) è necessario che l'utente disponga dei privilegi di amministratore. Se l'utente non dispone dei privilegi sufficienti, lo script termina: Codice:
:CheckPrivileges Creazione cartella temporanea Viene creata la cartella \Temp, dove verranno appoggiati tutti i file necessari. Se la cartella esiste già (può succedere quando si interrompe lo scipt prima di arrivare alla fine) viene cancellata e ricreata: Codice:
:MainLoop Viene effettuata una scansione della cartella \Iso. Se non è presente alcun file lo script termina: Codice:
echo Ricerca file ISO Codice:
echo !_foundIso! file trovati Questi due file servono nel prossimo step per rilevare il sistema operativo e l'edizione: Codice:
call :ISO.ExtractFiles Lo script legge il file idwbinfo.txt per rilevare il sistema operativo. Prima di fare ciò è necessario accertarsi che tal file esista: Codice:
if not exist %_tempDir%\idwbinfo.txt ( Se il file è nel posto giusto: Codice:
call :OS.DetectName Per ogni sistema operativo c'è un file di configurazione (spiegherò i file di configurazione nel post successivo) nella cartella \Config Ora che sono stati rilevati sistema operativo ed architettura lo script sa quale file di configurazione andare a leggere (il nome del file è composto da due parti: NomeOS_Architettura.ini, ad esempio Win7sp1amd64.ini). Le variabili necessarie sono state impostate nello step precedente (ad es: _osName=Win7sp1 e _osArch=amd64). Codice:
call :ConfigFile.Read Per rilevare l'edizione lo script legge il file ei.cfg. Tuttavia ho notato che nelle ISO di Windows 8 questo file non è presente. Lo script verifica prima se il file ei.cfg esiste nella cartella temporanea. In caso contrario chiede di selezionare manualmente l'edizione: Codice:
if exist %_tempDir%\ei.cfg ( In Windows 8 è possibile utilizzare solo Internet Explorer 10. In Windows 7 invece ci sono Internet Explorer 8, 9 e 10. Come prima cosa lo script rileva la versione di default, leggendo la prima riga di un file (IexploreIndex.txt) creato nella cartella temporanea leggendo il file di configurazione: Codice:
call :IE.DetectDefault Codice:
call :IE.CountVersions Codice:
if %_ieCounter% gtr 1 ( In base alle informazioni fornite fino ad ora lo script costruisce un indice da confrontare con i file presenti nella cartella \Updates. Gli aggiornamenti non trovati vengono inclusi in una lista di file da scaricare: Codice:
echo Ricerca aggiornamenti Nel caso in cui uno o più aggiornamenti non siano stati trovati nella cartella \Updates viene chiesto di effettuare il download (mediante curl.exe, presente nella cartella \Bin): Codice:
echo %_totalUpdates% aggiornamenti totali I file necessari vengono copiati nella cartella temporanea (gli aggiornamenti non integrabili saranno installati automaticamente al primo accesso): Codice:
echo Preparo gli aggiornamenti per l'integrazione Codice:
if not [!_defaultIE!]==[!_selectedIE!] call :IE.Extract A questo punto il file ISO viene scompattato nella cartella temporanea: Codice:
echo Estrazione immagine ISO Codice:
echo Montaggio file WIM Codice:
echo Integrazione aggiornamenti Codice:
echo Salvataggio file WIM Alla fine del processo la ISO aggiornata si troverà nella cartella \Output Codice:
echo Creazione file ISO Alla fine dello script la cartella temporanea viene cancellate e le variabili sono annullate. Codice:
echo Operazione completata Il montaggio/smontaggio dei file .wim ruchiede un sacco di tempo, per non parlare dell'integrazione degli aggiornamenti. Ho notato che con l'antivirus abilitato (NOD32 6.0) queste fasi sono estremamente lente. Disabilitate l'antivirus e, se possibile, lanciate lo script da un SSD. Per determinare quali aggiornamenti andavano integrati ho creato una virtual machine per ogni SO ed ho lanciato Windows Update. Il codice non gestisce aggiornamenti opzionali come DotNet o Silverlight. Se volete integrare altro software basta andare a modificare la sezione [SetupCompleteIndex] aggiungendo, nell'ordine esatto, i file da installare al primo accesso. I delimitatori di campo sono le virgole, ed i campi sono i seguenti: Nome File Prodotto Livello di gravità (Importante, Consigliato, Facoltativo) URL per il download del file Switch per l'installazione silenziosa Quote:
|
FILE DI CONFIGURAZIONE
Nella cartella \Config sono presenti alcuni file: OS.txt: è l'indice dei sistemi operativi (_osIndex) Codice:
WIN7SP1,amd64,Windows 7 Service Pack 1 x64 Colonna 1 (_osName): il nome del sistema operativo Colonna 2 (_osArch): l'architettura (amd64, x86) Colonna 3 (_osDescription): descrizione "friendly" che comparirà a video File di configurazione dei sistemi operativi: WIN7SP1amd64.ini WIN7SP1x86.ini WIN8AMD64.ini WIN8X86.ini Sono i file che contengono le informazioni di configurazione per ogni sistema operativo (_configFile), e contengono alcune sezioni (di seguito userò come esempio il file Win7Sp1amd64.ini) SEZIONE [EditionsIndex] E' l'indice delle edizioni disponibili (_editionsIndex) Codice:
[EditionsIndex] Colonna 2 (_osEdition): serve a ben poco, come la successiva: quando verrà creata l'immagine ISO aggiornata questa variabile verrà aggiunta al nome del file (es: Win7Sp1_HOMPREMIUM_IE9.iso) Colonna 3 (_osExtendedEdition): la descrizione a video SEZIONE [IntegrateList] E l'ordine in cui devono essere integrati gli aggiornamenti: Codice:
[IntegrateList] E Internet Explorer dov'è? Poiché è possibile che venga selezionata una versione differente rispetto a quella di default, la versione selezionata verrà aggiornata per ultima Codice:
echo %_selectedIE%>>%_integrateList% Sono le versioni supportate di Internet Explorer, nulla da spiegare. La prima colonna (_selectedIE) è il nome che lo script utilizza internamente, la seconda è la descrizione che compare a video Codice:
[IexploreIndex] [IntegrateIndex] E' l'indice degli aggiornamenti integrabili (_integrateIndex) Codice:
[IntegrateIndex] Colonna 1 (_fileName): mi rifiuto di spiegarlo :D Colonna 2: il prodotto interessato (WIN, DOTNET351, IE9 etc...) Colonna 3: livello di importanza (IMPORTANT, RECOMMENDED, OPTIONAL) Colonna 4: (_downloadURL): vedi Colonna 1 SEZIONE [SetupCompleteIndex] Sono quegli aggiornamenti che non possono essere integrati ma che verranno installati automaticamente al primo avvio: Codice:
[SetupCompleteIndex] In questa sezione potete fare ciò che volete: aggiungere altri aggiornamenti (ad es. Silverlight o DotNet 4 e/o 4.5, ma anche altri software). E' sufficiente aggiungere righe nell'ordine esatto in cui vanno installati gli aggiornamenti/software (non sto a dilungarmi sul file SetupComplete.cmd) Nota: nell'ultima riga ci sono le definizioni di Windows Defender. Servono a poco, poiché è probabile che da quando lanciate lo script a quando avete finito di installare il sistema operativo sarà uscita una nuova versione (e quindi Windows Update ci dirà che è disponibile un aggiornamento importante) SEZIONI AGGIUNTIVE [IE9] e [IE10] Sono presenti solo nei file di configurazione di Windows 7 (ovviamente) e sono leggermente differenti dalle altre. Servono a dire allo script: 1. Il nome del file 2. Lo switch per estrarre il pacchetto 3. Dove andarlo a scaricare 4. Quali file integrare Codice:
[IE9] |
Creata copia dal thread in sezione Win8: http://www.hwupgrade.it/forum/showthread.php?t=2571738
;) |
Complimenti bel lavoro. Mi tornerà utile.
|
Quote:
Ho aggiornato il post, riscaricarlo perché c'era un errore in un file di configurazione di Windows 7 x64. Se trovi qualche bug o ho dimenticato qualche aggiornamento fammi sapere |
Quote:
|
gran bel lavoro :ave: :mano:
appena ho l'occasione provo a ripetere le operazioni indicate ciao ciao |
Quote:
Non devi ripetere nessuna operazione, basta che lanci lo script come amministratore e rispondi alle poche domande. Provate e segnalatemi le eventuali anomalie. Se qualcuno usa ancora Vista e ha voglia di postare i link agli aggiornamenti credo che potrebbe funzionare senza mettere mano al codice. Per Windows Server 2008/2012... work in progress |
Quote:
ad ogni modo grazie ancora ciao ciao |
Prima di cominciare desideravo sapere se lo script è valido anche se la versione windows 7 è quella inglese.
|
Quote:
se si tratta di Windows 8 o Windows 7 con Internet Explorer 8 va bene. Se vuoi installare Windows 7 con IE 9 o 10 devi modificare il file ini col pacchetto adatto. Non ho un pc a disposizione al momento, se non ci riesci ti posto le modifiche lunedì. |
Ciao,
ti ringrazio in anticipo e aspetto le tue modifiche al file ini (ho la versione win7 pro x64 SP1 U en-us X17-59186). |
1 Allegato(i)
Ho modificato il file con ini con le versioni in inglese di Internet Explorer, te lo allego
|
1 Allegato(i)
Quote:
mi sembra un aggiornamento scaricato parzialmente. Ho notato che qualche volta i file sono offline sui server Microsoft, in genere è questione di un paio di minuti e ternano online. Prova a cancellare quel file e a riscaricarlo. Per quanto riguarda la possibilità di decidere quali aggiornamenti integrare... 1. NON INTEGRARE UN SINGOLO AGGIORNAMENTO Devi aprire il file .ini che ti interessa e commentare la riga (con un ; ) 2. NON INTEGRARE UNA CATEGORIA DI AGGIORNAMENTI Prendo ad esempio il file di Windows 8 x64: Lo script integra, nell'ordine, gli aggiornamenti di Windows, DotNet 4.5 e Flash Internet Explorer non è presente in questa lista perché viene aggiunto in base alla selezione fatta, quindi viene integrato alla fine. Nell'esempio ho commentato la riga DOTNET45 per dire allo script di non integrare (e non verranno neanche scaricati) gli aggiornamenti di DotNet 4.5. Gli aggiornamenti puoi anche scaricarli manualmente nella cartella Updates: se vengono trovati non c'è bisogno di riscaricarli IMPORTANTE Ho creato sia lo script che i file ini con Notepad++. Ho notato che facendo qualche modifica al volo con notepad andava tutto a puttane (basta commentare una riga e salvare il file). Non so perché, ma comunque per mettere mano ai file ini stai alla larga dal Blocco Note di Windows. Per concludere, proprio ieri mi sono deciso a passare a Windows 8 sul portatile e ho notato che qualcosa mi era sfuggito. Ti posto il file di configurazione corretto (rinominalo da .txt a .ini e copialo nella cartella Config) P.S.: martedì prossimo è il patch day, nessuno è disponibile a prendersi in carico un sistema operativo e a gestire le liste degli aggiornamenti? Da solo non ce la faccio :( |
non può darti una mano questo sito?
http://kbupdate.info/ |
Quote:
Ho sempre fatto così: installo il SO in una virtual machine e creo uno snapshot, dopo di che eseguo Windows Update. Per ogni update clicco col tasto destro e seleziono "Copia dettagli", dopo di che seguo il link a mano le url per i download (alcuni non sono disponibili sul sito, e lì bisogna spulciare il log di Windows Update). Integro quelli e soltanto quelli, mentre su altri lidi (ad esempio il forum di MyDigitalLife) hanno liste sterminate ed è un macello poi gestire gli aggiornamenti sostituiti ogni mese. |
ciao Tom Joad ottimo lavoro e un po' che cercavo una cosa del genere....
ho provato ad usarlo su dei pc ,sia con win xp che con win7, ma appena lo lancio mi da un errore sul 7z "non e' un'applicazione di Win32 valida" ho sostituito l'eseguibile 7z con un'altra versione ed ora non mi da piu' questo errore, pero' non mi rileva nessuna versione di windows nella iso. Questa l'ho ricavata da un dvd di windows7 32 bit service pack 1 dove sbaglio??? grazie anticipatamente |
Quote:
su Windows XP non l'ho mai testato (e non ho intenzione di farlo). Credo che l'errore di 7-zip sia dovuto al fatto che lo stai utilizzando su un sistema a 32 bit. In effetti finora non mi sono mai posto il problema, l'ho utilizzato su Windows 7 e 8 entrambi a 64 bit. Prima o poi dovrò aggiungere un controllo... :stordita: Meglio così, ho postato questo script proprio per avere riscontro e risolvere problemi che magari non mi ero posto. Per quanto riguarda la ISO, sei sicuro che sia originale? Puoi scaricarne una legalmente, i link li trovi in questa discussione: http://www.hwupgrade.it/forum/showpo...45&postcount=4 |
grazie per la risposta cosi' celere
in effetti erano tutti sistemi a 32 bit appena ho il tempo provero' con un win7 64bit per quanto riguarda invece la iso l'ho ricavata da un dvd originale con due software diversi (imgburn e folder2iso) e con entrambi ho avuto lo stesso errore ciao e grazie di nuovo |
Tutti gli orari sono GMT +1. Ora sono le: 07:06. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.