Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Microsoft Windows 8.1 e 10 (https://www.hwupgrade.it/forum/forumdisplay.php?f=155)
-   -   [GUIDA] Script per integrare gli aggiornamenti nelle ISO di Windows 8 (https://www.hwupgrade.it/forum/showthread.php?t=2571738)


Tom Joad 23-05-2013 19:09

[GUIDA] Script per integrare gli aggiornamenti nelle ISO di Windows 8
 
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://www.sugarsync.com/pf/D6714227_8_8488788238

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
net session >nul 2>&1
if not %ErrorLevel% == 0 (
        echo L'utente non possiede i privilegi di amministratore
        echo.
        echo Il programma verra' terminato
        goto End
)

Questa parte di codice è stata copiata spudoratamente da questo post: http://stackoverflow.com/questions/4...r-admin-rights

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
cls
if exist %_tempDir% rd %_tempDir% /s /q
md %_tempDir%

Ricerca immagini iso
Viene effettuata una scansione della cartella \Iso. Se non è presente alcun file lo script termina:



Codice:

echo Ricerca file ISO
echo.
call :Iso.ScanDir
if !_foundIso! equ 0 (
    cls
    echo Nessun file trovato
    echo.
    echo Copiare un'immagine ISO nella seguente cartella e riavviare il programma:
    echo.
    echo %_isoDir%
    echo.
    goto End
)

...

:Iso.ScanDir
dir /b %_isoDir%\*.iso>%_isoDirList%
set /a _foundIso=0
for /f %%G in (%_isoDirList%) do set /a _foundIso+=1
goto :eof

Nel caso in cui vengano trovati uno o più file viene richiesto di selezionare la ISO da aggiornare:



Codice:

echo !_foundIso! file trovati
echo.
echo Selezionare un file:
echo.
call :Iso.Select
cls
echo File: !_isoFile!
echo.

...

:Iso.Select
set _outputFile=%_tempDir%\SelectIso.cmd
echo @echo off>%_outputFile%
echo :_choice>>%_outputFile%
set /a _counter=0
for /f %%G in (%_isoDirList%) do (
        set /a _counter+=1
        echo echo !_counter!. %%G>>%_outputFile%
        echo echo.>>%_outputFile%
)
set /a _counter=0
echo set /p _choice=SELEZIONE: >>%_outputFile%
for /f %%G in (%_isoDirList%) do (
        set /a _counter+=1
        echo if [%%_choice%%]==[!_counter!] set _isoFile=%%G>>%_outputFile%
)
echo if not defined _isoFile echo.^& echo SELEZIONE NON VALIDA^&echo. ^&goto _choice>>%_outputFile%
echo echo.>>%_outputFile%
call %_outputFile%
del %_outputFile% /q
set _outputFile=
goto :eof

Estrazione dei file ei.cfg e idwbinfo.txt
Questi due file servono nel prossimo step per rilevare il sistema operativo e l'edizione:

Codice:

call :ISO.ExtractFiles

...

:ISO.ExtractFiles
start /wait /min %_binDir%\7Z.exe e %_isoDir%\!_isoFile! sources\ei.cfg sources\idwbinfo.txt -o%_tempDir% -y
goto :eof

Rilevamento del sistema operativo e dell'architetture (x86 o x64)
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 (
    echo Impossibile rilevare il sistema operativo. Il programma verra' terminato
    echo.
    goto End
)



Se il file è nel posto giusto:



Codice:

call :OS.DetectName
call :OS.DetectArch

...

:OS.DetectName
for /f "tokens=1 delims=," %%G in (%_osIndex%) do (
    find /i "%%G" %_tempDir%\idwbinfo.txt >nul && set _osName=%%G
)
goto :eof

:OS.DetectArch
for /f "tokens=2 delims=," %%G in (%_osIndex%) do (
    find /i "%%G" %_tempDir%\idwbinfo.txt >nul && set _osArch=%%G
)
goto :eof

Lettura file di configurazione
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

...

:ConfigFile.Read
set _configFile=%_configDir%\!_osName!!_osArch!.ini
for /f "delims=" %%G in (%_configFile%) do (
        set _line=%%G
        set _lineFirstChar=!_line:~0,1!
        if "!_lineFirstChar!" == "[" (
                set _currentArea=!_line:~1,-1!
                set _outputFile=%_tempDir%\!_currentArea!.txt
                type nul >!_outputFile!
        ) else (
                echo !_line!>>!_outputFile!
        )
)
goto :eof

Rilevamento (o selezione manuale) dell'edizione
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 (
    call :OS.DetectEdition
    echo Sistema Operativo: !_osDescription! !_osExtendedEdition!
    echo.
) else (
    echo Sistema Operativo: !_osDescription!
    echo.
    echo E' necessario selezionare manualmente l'edizione:
    echo.
    call :OS.SelectEdition
    cls
        echo File selezionato: !_isoFile!
        echo.
    echo Sistema Operativo: !_osDescription! !_osExtendedEdition!
    echo.
)

...

:OS.DetectEdition
for /f "tokens=1-3 delims=," %%G in (%_editionsIndex%) do (
        find /i "%%H" %_tempDir%\ei.cfg >nul && set _wimIndex=%%G&& set _osEdition=%%H&& set _osExtendedEdition=%%I
)
goto :eof

...

:OS.SelectEdition
set _outputFile=%_tempDir%\SelectOsEdition.cmd
echo @echo off>%_outputFile%
echo :_choice>>%_outputFile%
set /a _counter=0
for /f "tokens=1-3 delims=," %%G in (%_editionsIndex%) do (
    set /a _counter+=1
    echo echo !_counter!. %%I>>%_outputFile%
    echo echo.>>%_outputFile%
)
set /a _counter=0
echo set /p _choice=Selezione: >>%_outputFile%
for /f "tokens=1-3 delims=," %%G in (%_editionsIndex%) do (
    set /a _counter+=1
    echo if [%%_choice%%]==[!_counter!] set _wimIndex=%%G^& set _osEdition=%%H^& set _osExtendedEdition=%%I>>%_outputFile%
)
echo if not defined _wimIndex echo.^& echo Selezione non valida^& echo. ^&goto _choice>>%_outputFile%
call %_outputFile%
del %_outputFile% /q
set _outputFile=
goto :eof

Interner Explorer
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
set _selectedIE=%_defaultIE%

...

:IE.DetectDefault
for /f "tokens=1 delims=," %%G in ('type %_iexploreIndex%') do (
        set _defaultIE=%%G
        exit /b
)
goto :eof

Dopo di che conta le righe del file e determina se ci sono più versioni di Internet Explorer supportate:

Codice:

call :IE.CountVersions

...

:IE.CountVersions
set /a _ieCounter=0
for /f %%G in (%_iexploreIndex%) do set /a _ieCounter+=1
goto :eof

In quest'ultimo caso, chiede di selezionare la versione:



Codice:

if %_ieCounter% gtr 1 (
        echo Selezionare la versione di Internet Explorer:
        echo.
        call :IE.Select
)
echo %_selectedIE%>>%_integrateList%

...

:IE.Select
set _outputFile=%_tempDir%\SelectIE.cmd
echo @echo off>%_outputFile%
echo :_choice>>%_outputFile%
set /a _counter=0
for /f "tokens=1,2 delims=," %%G in (%_iexploreIndex%) do (
        set /a _counter+=1
        echo echo !_counter!. %%H>>%_outputFile%
        echo echo.>>%_outputFile%
)
echo set /p _choice=Selezione: >>%_outputFile%
set /a _counter=0
for /f "tokens=1,2 delims=," %%G in (%_iexploreIndex%) do (
        set /a _counter+=1
        echo if [%%_choice%%]==[!_counter!] set _selectedIE=%%G>>%_outputFile%
)
echo if not defined _selectedIE echo.^& echo Selezione non valida^&echo. ^&goto _choice>>%_outputFile%
echo echo.>>%_outputFile%
call %_outputFile%
del %_outputFile% /q
set _outputFile=
goto :eof

Scansione cartella Updates
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
echo.
call :Updates.BuildIndex
call :Updates.ScanDir

...

:Updates.BuildIndex
set _tempFile=%_integrateIndex%.tmp
for /f "tokens=1-4 delims=," %%G in (%_integrateIndex%) do find "%%H" %_integrateList% >nul && echo %%G,%%H,%%I,%%J>>%_tempFile%
move %_tempFile% %_integrateIndex% >nul
set _tempFile=
goto :eof

...

:Updates.ScanDir
type nul >%_downloadIndex%
dir /b %_updatesDir%>%_updatesDirList%
set /a _totalUpdates=0
for /f %%G in (%_integrateIndex%) do set /a _totalUpdates+=1
for /f %%G in (%_setupcompleteIndex%) do set /a _totalUpdates+=1
if not [!_defaultIE!]==[!_selectedIE!] set /a _totalUpdates+=1

set /a _foundUpdates=0
set /a _notFoundUpdates=0
for /f "tokens=1-4 delims=," %%G in (%_integrateIndex%) do find /i "%%G" %_updatesDirList% >nul && (set /a _foundUpdates+=1) || (set /a _notFoundUpdates+=1 && echo %%G,%%J>>%_downloadIndex%)
for /f "tokens=1-4 delims=," %%G in (%_setupcompleteIndex%) do find /i "%%G" %_updatesDirList% >nul && (set /a _foundUpdates+=1) || (set /a _notFoundUpdates+=1 && echo %%G,%%J>>%_downloadIndex%)
if not [!_defaultIE!]==[!_selectedIE!] (
        for /f "tokens=1-2 delims==" %%G in (%_tempDir%\%_selectedIE%.txt) do (set %%G=%%H)
        if not exist %_updatesDir%\!_archiveName! (
                set /a _notFoundUpdates+=1 && echo !_archiveName!,!_downloadURL!>>%_downloadIndex%
        ) else (
                set /a _foundUpdates+=1
        )
)
goto :eof

Download aggiornamenti mancanti
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
echo %_foundUpdates% aggiornamenti scaricati
echo %_notFoundUpdates% aggiornamenti da scaricare
echo.

if %_notFoundUpdates% gtr 0 (
        echo E' necessario eseguire il download di %_notFoundUpdates% file prima di proseguire
        echo.
    choice /c SN /m "Eseguire il download ora?"
    if errorlevel 2 goto End
    if errorlevel 1 call :Updates.Download
        echo.
)

...

:Updates.Download
for /f "tokens=1-2 delims=," %%G in (%_downloadIndex%) do (
        echo.
    echo Download di %%G in corso
        echo.
    %_binDir%\curl.exe -L -o %_updatesDir%\%%G "%%H" --progress-bar
)
goto :eof

Copia degli aggiornamenti
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
echo.
call :Updates.Copy

...

:Updates.Copy
for /f "tokens=1-3 delims=," %%G in (%_integrateIndex%) do xcopy /i %_updatesDir%\%%G %_integrateDir%\%%H\%%I\ >nul
md %_extractDir%\sources\$OEM$\$$\Setup\Scripts
echo @echo off>%_extractDir%\sources\$OEM$\$$\Setup\Scripts\SetupComplete.cmd
for /f "tokens=1-5 delims=," %%G in (%_setupcompleteIndex%) do (
        xcopy /i %_updatesDir%\%%G %_setupcompleteDir%\%%H\ >nul
        echo start /wait %%SYSTEMDRIVE%%\SETUPCOMPLETE\%%H\%%G %%K>>%_extractDir%\sources\$OEM$\$$\Setup\Scripts\SetupComplete.cmd
)
echo rd %%SYSTEMDRIVE%%\SETUPCOMPLETE /s /q>>%_extractDir%\sources\$OEM$\$$\Setup\Scripts\SetupComplete.cmd
goto :eof

Se la versione di Internet Explorer selezionata non è quella di default, è necessario scompattare l'archivio:

Codice:

if not [!_defaultIE!]==[!_selectedIE!] call :IE.Extract

...

:IE.Extract
start /wait /min %_updatesDir%\!_archiveName! !_extractSwitch!%_tempDir%
for %%G in (!_integrateFiles!) do xcopy /i %_tempDir%\%%G %_integrateDir%\%_selectedIE%\SETUP\ >nul
goto :eof

Estrazione immagine ISO
A questo punto il file ISO viene scompattato nella cartella temporanea:

Codice:

echo Estrazione immagine ISO
echo.
call :ISO.Extract

...

:ISO.Extract
start /wait /min %_binDir%\7Z.exe x %_isoDir%\!_isoFile! -o%_extractDir% -y
goto :eof

Montaggio file install.wim



Codice:

echo Montaggio file WIM
echo.
call :Wim.Mount

...

:Wim.Mount
md %_mountDir%
set _logFile=%_tempDir%\MountWim.log
dism /mount-wim /wimfile:%_wimFile% /index:!_wimIndex! /mountdir:%_mountDir% /LogPath:%_logFile% /LogLevel:1
goto :eof

Integrazione aggiornamenti



Codice:

echo Integrazione aggiornamenti
echo.
call :Wim.Integrate

...

:Wim.Integrate
set _logFile=%_tempDir%\IntegrateWim.log
for /f %%G in (%_integrateList%) do (
        if exist %_integrateDir%\%%G\SETUP dism /image:%_mountDir% /add-package /packagepath:%_integrateDir%\%%G\SETUP /LogPath:%_logFile% /LogLevel:1
        if exist %_integrateDir%\%%G\IMPORTANT dism /image:%_mountDir% /add-package /packagepath:%_integrateDir%\%%G\IMPORTANT /LogPath:%_logFile% /LogLevel:1
        if exist %_integrateDir%\%%G\RECOMMENDED dism /image:%_mountDir% /add-package /packagepath:%_integrateDir%\%%G\RECOMMENDED /LogPath:%_logFile% /LogLevel:1
        if exist %_integrateDir%\%%G\OPTIONAL dism /image:%_mountDir% /add-package /packagepath:%_integrateDir%\%%G\OPTIONAL /LogPath:%_logFile% /LogLevel:1
)
goto :eof

Salvataggio del file install.wim



Codice:

echo Salvataggio file WIM
echo.
call :Wim.Unmount

...

:Wim.Unmount
set _logFile=%_tempDir%\UnMountWim.log
dism /unmount-wim /mountdir:%_mountDir% /commit /LogPath:%_logFile% /LogLevel:1
if exist %_mountDir% rd %_mountDir% /s /q
goto :eof

Creazione ISO aggiornata
La ISO aggiornata si troverà nella cartella \Output alla fine del processo
Codice:

echo Creazione file ISO
echo.
call :Iso.Build

...

:Iso.Build
start /wait /min %_binDir%\oscdimg.exe -h -u2 -m -b%_extractDir%\boot\etfsboot.com -l!_osName!!_osArch! %_extractDir% %_outputDir%\!_osName!_!_osArch!_!_osEdition!_!_selectedIE!.iso
goto :eof

FINE!
Alla fine dello script la cartella temporanea viene cancellate e le variabili sono annullate.

Codice:

echo Operazione completata
echo.
goto End

...

:End
echo.
echo Premere un tasto per uscire
pause >nul
if exist %_tempDir% rd %_tempDir% /s /q
for /f "tokens=1 delims==" %%G in ('set _') do (set %%G=)
exit

CONSIGLI
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:

[SetupCompleteIndex]
; Aggiornamento per Windows 7 per sistemi x64 (KB2533552)
Windows6.1-KB2533552-x64.msu,WIN,IMPORTANT,http://download.microsoft.com/downlo...x64.msu,/quiet /notesrtart
; Strumento di rimozione malware di Windows – maggio 2013 (KB890830)
Windows-KB890830-V4.20-x64.exe,MRT,IMPORTANT,http://download.microsoft.com/downlo...4-V4.20.exe,/q
; Definition Update for Windows Defender - KB915597
mpas-fe-x64.exe,MPAS,IMPORTANT,http://go.microsoft.com/fwlink/?Link...7E5EB378092,/q
Nell'ultima riga ci sono le definizioni di Windows Defender. Sono lì solo a scopo accademico: vengono aggiornate di frequente e quindi è impossibile avere l'ultima versione. Se non usate Windows Defender commentate o cancellate la riga

Tom Joad 23-05-2013 19:11

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
WIN7SP1,x86,Windows 7 Service Pack 1 x86
WIN8,amd64,Windows 8 x64
WIN8,x86,Windows 8 x86

I campi sono delimitati da virgole, come in tutti gli altri file. Credo che non ci sia nulla da spiegare, comunque (tra parentesi il nome della variabile relativa alla colonna che viene assegnata durante l'esecuzione)...

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]
1,HOMEBASIC,Home Basic
2,HOMEPREMIUM,Home Premium
3,PROFESSIONAL,Professional
4,ULTIMATE,Ultimate

Colonna 1 (_wimIndex): è l'indice che viene utilizzato in fase di montaggio dell'immagine install.wim per stabilire quale edizione andare ad aggiornare
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]
WIN
WU
DOTNET351

In questo caso, lo script integra prima gli aggiornamenti di Windows, poi quelli di Windows Update, poi quelli di DotNet 3.5.1 (quello di default in Windows 7).

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%
SEZIONE [IexploreIndex]
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]
IE8,Internet Explorer 8
IE9,Internet Explorer 9
IE10,Internet Explorer 10

IMPORTANTE: Poiché lo script ad un certo punto determina la versione di default di Internet Explorer leggendo la PRIMA RIGA di questa sezione, l'ordine non va mai cambiato.

[IntegrateIndex]
E' l'indice degli aggiornamenti integrabili (_integrateIndex)

Codice:

[IntegrateIndex]
;Aggiornamento di Windows Update
WUClient-SelfUpdate-ActiveX-x64.cab,WU,IMPORTANT,http://download.windowsupdate.com/v9/1/windowsupdate/b/selfupdate/WSUS3/x64/Vista/WUClient-SelfUpdate-ActiveX~31bf3856ad364e35~amd64~~7.6.7600.256.cab
WUClient-SelfUpdate-Aux-TopLevel-x64.cab,WU,IMPORTANT,http://download.windowsupdate.com/v9/1/windowsupdate/b/selfupdate/WSUS3/x64/Vista/WUClient-SelfUpdate-Aux-TopLevel~31bf3856ad364e35~amd64~~7.6.7600.256.cab
WUClient-SelfUpdate-Core-TopLevel-x64.cab,WU,IMPORTANT,http://download.windowsupdate.com/v9/1/windowsupdate/b/selfupdate/WSUS3/x64/Vista/WUClient-SelfUpdate-Core-TopLevel~31bf3856ad364e35~amd64~~7.6.7600.256.cab
; Aggiornamento cumulativo della protezione per ActiveX Killbits per Windows 7 per sistemi x64 (KB2618451)
Windows6.1-KB2618451-x64.msu,WIN,IMPORTANT,http://download.windowsupdate.com/msdownload/update/software/secu/2011/11/windows6.1-kb2618451-x64_578a8773c44d60c06f384af45784ecf57d75376b.msu

...

Non lascia nulla all'immaginazione ma la spiego lo stesso:

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]
; Aggiornamento per Windows 7 per sistemi x64 (KB2533552)
Windows6.1-KB2533552-x64.msu,WIN,IMPORTANT,http://download.microsoft.com/download/B/6/F/B6F95B10-8B74-42F2-B57A-2C559D43BC28/Windows6.1-KB2533552-x64.msu,/quiet /notesrtart
; Strumento di rimozione malware di Windows – maggio 2013 (KB890830)
Windows-KB890830-V4.20-x64.exe,MRT,IMPORTANT,http://download.microsoft.com/download/2/C/5/2C563B99-54D9-4D85-A82B-45D3CD2F53CE/Windows-KB890830-x64-V4.20.exe,/q
; Definition Update for Windows Defender - KB915597
mpas-fe-x64.exe,MPAS,IMPORTANT,http://go.microsoft.com/fwlink/?LinkID=121721&arch=x64&prod=925A3ACA-C353-458A-AC8D-A7E5EB378092,/q

Identica alla sezione precedente ma con un campo in più, l'ultimo: è lo switch per installare in maniera silenziosa l'aggiornamento.

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]
_archiveName=IE9-Windows7-x64-ita.exe
_extractSwitch=/X:
_downloadURL=http://download.microsoft.com/download/6/9/8/698AD42B-833A-4516-96F4-1105DFE9DC26/IE9-Windows7-x64-ita.exe
_integrateFiles=IE9-Win7.CAB,ielangpack-ITA.CAB

[IE10]
_archiveName=IE10-Windows6.1-x64-it-it.exe
_extractSwitch=/X:
_downloadURL=http://download.microsoft.com/download/6/2/5/6250E2E1-EDC4-49AF-939F-1F19DA354E29/IE10-Windows6.1-x64-it-it.exe
_integrateFiles=IE-Win7.CAB,IE-Hyphenation-ITA.MSU,IE-Hyphenation-NEU.MSU,ielangpack-ITA.CAB,IE-Spelling-ITA.MSU,IE-Spelling-NEU.MSU

Enjoy :)

ezio 23-05-2013 19:20

Grazie mille Tom ;)
Al contrario di quanto detto in pvt, ti ho creato una copia aperta in sezione Win7, nel caso gli interessati abbiano problematiche differenti per i due sistemi operativi:
http://www.hwupgrade.it/forum/showthread.php?t=2571739

Tom Joad 23-05-2013 19:30

Grazie a te ;)

Appena avrò un po' di tempo lo adatterò anche alle versioni server, mentre se qualcuno ha voglia di cimentarsi con Vista ben venga. Credo che dovrebbe funzionare senza mettere le mani sul codice, andando semplicemente a creare il file .ini

talpotto 13-07-2013 11:52

script
 
Grazie Tom io non me ne intendo tanto di script è possibile adattarlo per windows 8.1 perchè è un ottimo script e funziona alla meraviglia. Grazie ciao Bruno

Tom Joad 13-07-2013 11:53

Credo di sì ma ancora non ho provato Windows 8.1 per mancanza di tempo.

In realtà ho un po' accantonato il progetto, dopo il mese di luglio forse riuscirò a rimetterci mano.

talpotto 13-07-2013 12:59

script
 
grazie ancora, fammi sapere attendo tue notizie.
ciao Bruno

ironz 19-07-2013 17:50

ciao
bellissimo programma e complimenti..
Dimmi una cosa io ho la iso X64 con rimosso il file ei.cfg per poter selezionare la versione durante l'installazione e usare un unico dvd.
Gli ho dato questa iso,mi ha solo confermato la versione windows 7 x64 e sta procedendo con gli aggiornamenti..
quando finirà mi ritroverò la iso con la scelta dei sistemi operativi ancora funzionante in quanto non c'è il file ei.cfg e gli update saranno inclusi giusto?

Tom Joad 19-07-2013 19:01

Quote:

Originariamente inviato da ironz (Messaggio 39745501)
ciao
bellissimo programma e complimenti..
Dimmi una cosa io ho la iso X64 con rimosso il file ei.cfg per poter selezionare la versione durante l'installazione e usare un unico dvd.
Gli ho dato questa iso,mi ha solo confermato la versione windows 7 x64 e sta procedendo con gli aggiornamenti..
quando finirà mi ritroverò la iso con la scelta dei sistemi operativi ancora funzionante in quanto non c'è il file ei.cfg e gli update saranno inclusi giusto?

parli di windows 7 o 8? comunque mi sembra strano, se non trova il file ei.cfg richiede di selezionare manualmente la versione. altrimenti non sa cosa aggiornare :D

ironz 19-07-2013 19:15

Quote:

Originariamente inviato da Tom Joad (Messaggio 39745820)
parli di windows 7 o 8? comunque mi sembra strano, se non trova il file ei.cfg richiede di selezionare manualmente la versione. altrimenti non sa cosa aggiornare :D

sbagliato thread..
si parlavo di 7..
quindi se non c'è l'ei.cfg mi dovrebbe far scegliere la versione su cui applicare gli aggiornamenti..
e non avrei più la iso multiscelta di versione giusto?

Tom Joad 19-07-2013 19:27

Quote:

Originariamente inviato da ironz (Messaggio 39745501)
ciao
bellissimo programma e complimenti..
Dimmi una cosa io ho la iso X64 con rimosso il file ei.cfg per poter selezionare la versione durante l'installazione e usare un unico dvd.
Gli ho dato questa iso,mi ha solo confermato la versione windows 7 x64 e sta procedendo con gli aggiornamenti..
quando finirà mi ritroverò la iso con la scelta dei sistemi operativi ancora funzionante in quanto non c'è il file ei.cfg e gli update saranno inclusi giusto?

parli di windows 7 o 8? comunque mi sembra strano, se non trova il file ei.cfg richiede di selezionare manualmente la versione. altrimenti non sa cosa aggiornare :D

Tom Joad 19-07-2013 19:35

Quote:

Originariamente inviato da ironz (Messaggio 39745885)
sbagliato thread..
si parlavo di 7..
quindi se non c'è l'ei.cfg mi dovrebbe far scegliere la versione su cui applicare gli aggiornamenti..
e non avrei più la iso multiscelta di versione giusto?

la iso multiscelta resterebbe, ma gli aggiornamenti vengono integrati solo in una versione, quella che scegli. se vuoi integrarlo in tutte le edizioni dovresti ripetere il procedimento per 4 volte (5 per le versioni 32 bit). si potrebbe anche modificare il codice per far tutto in automatico, ma sono in vacanza e quando torno mi aspetta un sacco di lavoro :(

cipollino62 25-07-2013 15:51

Quote:

Originariamente inviato da Tom Joad (Messaggio 39745983)
la iso multiscelta resterebbe, ma gli aggiornamenti vengono integrati solo in una versione, quella che scegli. se vuoi integrarlo in tutte le edizioni dovresti ripetere il procedimento per 4 volte (5 per le versioni 32 bit). si potrebbe anche modificare il codice per far tutto in automatico, ma sono in vacanza e quando torno mi aspetta un sacco di lavoro :(

complimenti bel lavoro veramente :sofico:
appena hai finito tutto il lavoro che ti aspetta :D noi aspettiamo te ;)

grazie mille
ciao

OldSchool 04-04-2014 10:44

ei.cfg & windows 8.1
 
Sbagliato thread, ho riportato la segnalazione. :-D

Ciao, ho riscontrato un problema dello script con la iso di windows 8.1 (RTM).
Originalmente non ha il file ei.cfg e se uso il tuo script tutto funziona perchè leggendo mi chiede quale versione aggiornare (1 per la pro 2 per la core).
Io ho creato il file ei.cfg per comodità di installazione e l'ho integrato nell'iso.
L'iso funziona tranquillamente in installazione chiedendomi quale versione installare (Win 8.1 pro o Core) e quindi ok.
Se utilizzo il tuo script sulla mia iso (quindi con il file ei.cfg) lo script si blocca sul mount del file install.wim dando un errore sull'opzione /index:!_wimIndex! cioè non trova l'indice in automatico e a quel punto non fa il mount del file e quindi tutta l'operazione fallisce.

Tom Joad 04-04-2014 10:45

Quote:

Originariamente inviato da OldSchool (Messaggio 40944739)
Sbagliato thread, ho riportato la segnalazione. :-D

Ciao, ho riscontrato un problema dello script con la iso di windows 8.1 (RTM).
Originalmente non ha il file ei.cfg e se uso il tuo script tutto funziona perchè leggendo mi chiede quale versione aggiornare (1 per la pro 2 per la core).
Io ho creato il file ei.cfg per comodità di installazione e l'ho integrato nell'iso.
L'iso funziona tranquillamente in installazione chiedendomi quale versione installare (Win 8.1 pro o Core) e quindi ok.
Se utilizzo il tuo script sulla mia iso (quindi con il file ei.cfg) lo script si blocca sul mount del file install.wim dando un errore sull'opzione /index:!_wimIndex! cioè non trova l'indice in automatico e a quel punto non fa il mount del file e quindi tutta l'operazione fallisce.

Stessa risposta, postami il file ei.cfg

OldSchool 04-04-2014 10:49

A ri-risposta ;-)

Certamente, eccolo:

[EditionID]

[Channel]

Retail

[VL]

0

friscoss 04-04-2014 10:51

Ma questa non è una guida, più che altro è un vero e proprio mattone, il tormentone di primavera:D

Tom Joad 04-04-2014 10:52

Quote:

Originariamente inviato da friscoss (Messaggio 40944778)
Ma questa non è una guida, più che altro è un vero e proprio mattone, il tormentone di primavera:D

:D E' da quasi un anno che è in circolazione

friscoss 04-04-2014 11:00

Quote:

Originariamente inviato da Tom Joad (Messaggio 40944788)
:D E' da quasi un anno che è in circolazione

Infatti era da quasi un anno sotto narcosi:asd:

Tom Joad 04-04-2014 11:02

Quote:

Originariamente inviato da friscoss (Messaggio 40944830)
Infatti era da quasi un anno sotto narcosi:asd:

C'è anche quella per Windows 7 http://www.hwupgrade.it/forum/showthread.php?t=2571739 :asd:

E l'Update 1 http://www.hwupgrade.it/forum/showpo...6&postcount=22 :asd:


Tutti gli orari sono GMT +1. Ora sono le: 11:41.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.